Contract 0xA3a41C59ffd2D4899be1931239f561247a32481D

Contract Overview

Balance:
0 AVAX
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x657768c7eb3d05225f453855504c75a66c6a19b7062a80b53e2283df9f4a78a60x741ba445104457602022-06-06 16:07:28114 days 18 hrs ago0x35a32d2ff907347151d3fc79588057b22b7abea4 IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.0071399745 26.5
0x7e94ba1f09503241c42a2b7ffc7e1acad73428035435ec7a17c7a07b8c3121360x741ba445104457272022-06-06 16:06:16114 days 18 hrs ago0x35a32d2ff907347151d3fc79588057b22b7abea4 IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.01257213 26.5
0xea06656a4608209f72e3d7cc88f1b04a7b5e35c694727f66a2bc874d4f5460860x741ba445104457142022-06-06 16:05:41114 days 18 hrs ago0x35a32d2ff907347151d3fc79588057b22b7abea4 IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.012530737 26.5
0xdb29b76e12a46aa3c7dbfddef09983307315ad71e9fdfd9f8765f24a2922d5470x741ba445104208792022-06-05 15:43:14115 days 18 hrs ago0x6d62709a3b3947a8a3232f95da6f0656c225edce IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.006734925 25
0x74db0878248dbedcbd482ae68a766d42a6c55250871e4eaff7e0e827637cb43e0x741ba445104208492022-06-05 15:40:53115 days 18 hrs ago0x6d62709a3b3947a8a3232f95da6f0656c225edce IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.01182055 25
0x0f00444f69fd58d357547ab08e2af34b33a6993cb1c4788d874b8a2ca252f4da0x741ba445104208342022-06-05 15:40:18115 days 18 hrs ago0x6d62709a3b3947a8a3232f95da6f0656c225edce IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.01182055 25
0xb4dff7c1de993ae7a541f94fa5a0a5571a77e9da0a694f1dbb8328b0f39993080x741ba445104208162022-06-05 15:39:31115 days 18 hrs ago0x6d62709a3b3947a8a3232f95da6f0656c225edce IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.006695875 25
0xf06ebeca3360a7f852d36361b6004637576ff8a4103cc8be68f5e0b1201835ee0x741ba445104207922022-06-05 15:38:39115 days 18 hrs ago0x6d62709a3b3947a8a3232f95da6f0656c225edce IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.007162425 25
0xd127a1f0e91d10c615ebd8a61fe9e13cd439ff5b4b5f70366692f4f9d1f3a0e10x741ba445103781712022-06-04 5:01:59117 days 5 hrs ago0x864d19b27f6b724086fcd05cf37df2c85aca41fd IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.0066865065 26.5
0xb51e2916973faafc0e0dd9d1a2218de314a438faff013bd882910e7847a67f2b0x741ba445103781702022-06-04 5:01:56117 days 5 hrs ago0xa6c3f5a37c13f5763bb08df659a8e8e6336eb61e IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.0066451135 26.5
0x32ea7e89c16cd375743672524821d0e43cbbdd30f4fa84d675d2472f477b19520x741ba445103781692022-06-04 5:01:55117 days 5 hrs ago0x33fca7a95754e9919173be30d14fb74e35932298 IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.0066451135 26.5
0xaed6ba3865279e7bf03211b3321a2ec94547019d519acbb10cf303a3f919023d0x741ba445103781622022-06-04 5:01:40117 days 5 hrs ago0x1e3ee16d15638efe4729d0a704c9668648677ad8 IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.0066451135 26.5
0xab3c95148e5f23295fb41f9455265d3cf3354cc8ebe4af7480507e6b452f05010x741ba445103781612022-06-04 5:01:39117 days 5 hrs ago0x19884aec2e463c06f08c3f380568d1a531d3293b IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.0066865065 26.5
0xc902aaedfa48ba60cccb9868f65ca6421a8c731db9af1eade4c1b36b081974240x741ba445103781522022-06-04 5:01:21117 days 5 hrs ago0x33144b99eb3002bd9150e1a3ab06612b28b6fe73 IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.006919903425 27.425
0xa7d72fbf835841dbe4922697364f22ae04ffbcd9af815581bb3b4f37fb27b87b0x741ba445103781242022-06-04 5:00:25117 days 5 hrs ago0x33fca7a95754e9919173be30d14fb74e35932298 IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.006810353659 27.146835064
0xe67d2872a8655db119361eab79f3067bea53a3ddee31a39e7c1368d73b9ebdad0x741ba445103781242022-06-04 5:00:25117 days 5 hrs ago0x864d19b27f6b724086fcd05cf37df2c85aca41fd IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.006810353659 27.146835064
0xf706631ce032ae9c716bc371c9835a144d4991894b3ac74dc135f904338033bf0x741ba445103781222022-06-04 5:00:21117 days 5 hrs ago0xa6c3f5a37c13f5763bb08df659a8e8e6336eb61e IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.00684418297 27.2816825
0x2b0abd55111217b0366540c1f86f3d73c7a816559c19eb74650b26235e094d520x741ba445103781202022-06-04 5:00:17117 days 5 hrs ago0x19884aec2e463c06f08c3f380568d1a531d3293b IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.0066480815 26.5
0x2d7cb188c915bcaf85e3be0ea128ee754784e3a4d22b8fc7c4ccf49abdc313be0x741ba445103781202022-06-04 5:00:17117 days 5 hrs ago0x1e3ee16d15638efe4729d0a704c9668648677ad8 IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.006827010731 27.213232025
0xd8d7d654e5d4663881ec093175bf514373ac21f6cf05a54d10fd170d2406be980x741ba445103781192022-06-04 5:00:15117 days 5 hrs ago0x33144b99eb3002bd9150e1a3ab06612b28b6fe73 IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.00684418297 27.2816825
0x4e19adc19ca76aab8b8ebd1f77277adc8ea58af54271503a8c010626ac5363570x741ba445103781182022-06-04 5:00:13117 days 5 hrs ago0x8be94576cd5fc156a157eabf05d9f3c89ea3da3d IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.006823962849 27.213232025
0x58a57108718914f066a1e33f7f704f7f08dfcdf1a0938c7daf89959154e8abc40x741ba445103627392022-06-03 18:01:56117 days 16 hrs ago0xcc91feaaf9df139304316162b7005e9f773d3df0 IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.0075921705 26.5
0x178952e98d1be525db18073dcaf6c52a9434f4042bb20a047c5e7e53166db8d70x741ba445103622932022-06-03 17:45:45117 days 16 hrs ago0xcc91feaaf9df139304316162b7005e9f773d3df0 IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.012761526432 26.900577645
0x8b4f940d23987230b74f7088511ce2d24b32559ee849039f31653843fe66d9480x741ba445103622562022-06-03 17:44:12117 days 16 hrs ago0xcc91feaaf9df139304316162b7005e9f773d3df0 IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.012878349967 27.146835064
0xe2492b94d932ad2c838305edb2d34ff15d85926a20f473d4ea09551484d654920x741ba445103622202022-06-03 17:42:12117 days 16 hrs ago0xcc91feaaf9df139304316162b7005e9f773d3df0 IN 0xa3a41c59ffd2d4899be1931239f561247a32481d0 AVAX0.007345703975 27.425
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x657768c7eb3d05225f453855504c75a66c6a19b7062a80b53e2283df9f4a78a6104457602022-06-06 16:07:28114 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x98568b155b945c7136d74d770083a140f37f5ced0 AVAX
0x657768c7eb3d05225f453855504c75a66c6a19b7062a80b53e2283df9f4a78a6104457602022-06-06 16:07:28114 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x98568b155b945c7136d74d770083a140f37f5ced0 AVAX
0x657768c7eb3d05225f453855504c75a66c6a19b7062a80b53e2283df9f4a78a6104457602022-06-06 16:07:28114 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x8ba3e8f266d12f39d9930565b104893b307f9dd50 AVAX
0x657768c7eb3d05225f453855504c75a66c6a19b7062a80b53e2283df9f4a78a6104457602022-06-06 16:07:28114 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0xc814223abdc244b09340a3725891beeff91467c40 AVAX
0x7e94ba1f09503241c42a2b7ffc7e1acad73428035435ec7a17c7a07b8c312136104457272022-06-06 16:06:16114 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x0920509f863b05918499d7ba76cbe01e9efc08980 AVAX
0x7e94ba1f09503241c42a2b7ffc7e1acad73428035435ec7a17c7a07b8c312136104457272022-06-06 16:06:16114 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x98568b155b945c7136d74d770083a140f37f5ced0 AVAX
0x7e94ba1f09503241c42a2b7ffc7e1acad73428035435ec7a17c7a07b8c312136104457272022-06-06 16:06:16114 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x0920509f863b05918499d7ba76cbe01e9efc08980 AVAX
0x7e94ba1f09503241c42a2b7ffc7e1acad73428035435ec7a17c7a07b8c312136104457272022-06-06 16:06:16114 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x98568b155b945c7136d74d770083a140f37f5ced0 AVAX
0x7e94ba1f09503241c42a2b7ffc7e1acad73428035435ec7a17c7a07b8c312136104457272022-06-06 16:06:16114 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x8ba3e8f266d12f39d9930565b104893b307f9dd50 AVAX
0x7e94ba1f09503241c42a2b7ffc7e1acad73428035435ec7a17c7a07b8c312136104457272022-06-06 16:06:16114 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0xc814223abdc244b09340a3725891beeff91467c40 AVAX
0xea06656a4608209f72e3d7cc88f1b04a7b5e35c694727f66a2bc874d4f546086104457142022-06-06 16:05:41114 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x0920509f863b05918499d7ba76cbe01e9efc08980 AVAX
0xea06656a4608209f72e3d7cc88f1b04a7b5e35c694727f66a2bc874d4f546086104457142022-06-06 16:05:41114 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x98568b155b945c7136d74d770083a140f37f5ced0 AVAX
0xea06656a4608209f72e3d7cc88f1b04a7b5e35c694727f66a2bc874d4f546086104457142022-06-06 16:05:41114 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x0920509f863b05918499d7ba76cbe01e9efc08980 AVAX
0xea06656a4608209f72e3d7cc88f1b04a7b5e35c694727f66a2bc874d4f546086104457142022-06-06 16:05:41114 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x98568b155b945c7136d74d770083a140f37f5ced0 AVAX
0xea06656a4608209f72e3d7cc88f1b04a7b5e35c694727f66a2bc874d4f546086104457142022-06-06 16:05:41114 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x8ba3e8f266d12f39d9930565b104893b307f9dd50 AVAX
0xea06656a4608209f72e3d7cc88f1b04a7b5e35c694727f66a2bc874d4f546086104457142022-06-06 16:05:41114 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0xc814223abdc244b09340a3725891beeff91467c40 AVAX
0xdb29b76e12a46aa3c7dbfddef09983307315ad71e9fdfd9f8765f24a2922d547104208792022-06-05 15:43:14115 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x98568b155b945c7136d74d770083a140f37f5ced0 AVAX
0xdb29b76e12a46aa3c7dbfddef09983307315ad71e9fdfd9f8765f24a2922d547104208792022-06-05 15:43:14115 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x98568b155b945c7136d74d770083a140f37f5ced0 AVAX
0xdb29b76e12a46aa3c7dbfddef09983307315ad71e9fdfd9f8765f24a2922d547104208792022-06-05 15:43:14115 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x8ba3e8f266d12f39d9930565b104893b307f9dd50 AVAX
0xdb29b76e12a46aa3c7dbfddef09983307315ad71e9fdfd9f8765f24a2922d547104208792022-06-05 15:43:14115 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0xc814223abdc244b09340a3725891beeff91467c40 AVAX
0x74db0878248dbedcbd482ae68a766d42a6c55250871e4eaff7e0e827637cb43e104208492022-06-05 15:40:53115 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x0920509f863b05918499d7ba76cbe01e9efc08980 AVAX
0x74db0878248dbedcbd482ae68a766d42a6c55250871e4eaff7e0e827637cb43e104208492022-06-05 15:40:53115 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x98568b155b945c7136d74d770083a140f37f5ced0 AVAX
0x74db0878248dbedcbd482ae68a766d42a6c55250871e4eaff7e0e827637cb43e104208492022-06-05 15:40:53115 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x0920509f863b05918499d7ba76cbe01e9efc08980 AVAX
0x74db0878248dbedcbd482ae68a766d42a6c55250871e4eaff7e0e827637cb43e104208492022-06-05 15:40:53115 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x98568b155b945c7136d74d770083a140f37f5ced0 AVAX
0x74db0878248dbedcbd482ae68a766d42a6c55250871e4eaff7e0e827637cb43e104208492022-06-05 15:40:53115 days 18 hrs ago 0xa3a41c59ffd2d4899be1931239f561247a32481d0x8ba3e8f266d12f39d9930565b104893b307f9dd50 AVAX
[ Download CSV Export 
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
AxialAggregator

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 999 runs

Other Settings:
default evmVersion
File 1 of 5 : AxialAggregator.sol
// SPDX-License-Identifier: GPL-3.0-only
pragma solidity >=0.7.0;
pragma experimental ABIEncoderV2;

import "./lib/Ownable.sol";
import "./interface/IRouter.sol";
import "./lib/SafeMath.sol";

/// @notice Aggregator contract to help swapping across known pools but favoring Axial pools when there is a path.
contract AxialAggregator is Ownable {
    using SafeMath for uint;

    /// @dev Router that swaps across Axial pools;
    address public InternalRouter;
    /// @dev Router that swaps across all non-Axial pools; 
    address public ExternalRouter;

    address public constant WAVAX = 0xd00ae08403B9bbb9124bB305C09058E32C39A48c;

    struct FindBestPathParams {
        uint256 amountIn;
        address tokenIn;
        address tokenOut;
        uint256 maxSteps;
        uint gasPrice;
    }

    event UpdatedInternalRouter(
        address _oldInternalRouter, 
        address _newInternalRouter
    );

    event UpdatedExternalRouter(
        address _oldExternalRouter, 
        address _newExternalRouter
    );

    constructor(address _internalRouter, address _externalRouter) {
        require(
            _internalRouter != address(0),
            "Aggregator: _internalRouter not set"
        );
        require(
            _externalRouter != address(0),
            "Aggregator: _externalRouter not set"
        );

        InternalRouter = _internalRouter;
        ExternalRouter = _externalRouter;
    }

    /// @notice Set router to be used for swapping across Axial pools.
    function setInternalRouter(address _internalRouter) public onlyOwner {
        emit UpdatedInternalRouter(InternalRouter, _internalRouter);
        InternalRouter = _internalRouter;
    }

    /// @notice Set router to be used for swapping across non-Axial pools.
    function setExternalRouter(address _externalRouter) public onlyOwner {
        emit UpdatedExternalRouter(ExternalRouter, _externalRouter);
        ExternalRouter = _externalRouter;
    }

    /// @notice Finds the best path between tokenIn & tokenOut, checking Axial owned pools first.
    /// @param _params This includes the input token, output token, max number of steps to use and amount in.
    function findBestPath(FindBestPathParams calldata _params) external view returns (IRouter.FormattedOfferWithGas memory bestPath, bool useInternalRouter) {
        IRouter.FormattedOfferWithGas memory offer;
        bool UseInternalRouter;

        IRouter.FormattedOffer memory gasQuery = IRouter(ExternalRouter).findBestPath(1e18, WAVAX, _params.tokenOut, 2);
        uint tknOutPriceNwei = gasQuery.amounts[gasQuery.amounts.length-1].mul(_params.gasPrice/1e9);

        // Query internal router for best path
        offer = IRouter(InternalRouter).findBestPathWithGas(
            _params.amountIn,
            _params.tokenIn,
            _params.tokenOut,
            _params.maxSteps,
            _params.gasPrice,
            tknOutPriceNwei
        );

        // Check if internal router returned an offer
        if (offer.adapters.length > 0) {
            UseInternalRouter = true;
        } else {
            offer = IRouter(ExternalRouter).findBestPathWithGas(
                _params.amountIn,
                _params.tokenIn,
                _params.tokenOut,
                _params.maxSteps,
                _params.gasPrice,
                tknOutPriceNwei
            );
        }

        return (offer, UseInternalRouter);
    }

    /// @notice Swaps input token to output token using the specified path and adapters.
    /// @param _trade This includes the input token, output token, the path to use, adapters and input amounts.
    /// @param _to The output amount will be sent to this address.
    /// @param _fee The fee to be paid by the sender.
    /// @param _useInternalRouter Specifies whether to use the internal router or external router.
    /// @dev The aggregator must be approved to spend users input token.
    function swap(
        IRouter.Trade calldata _trade,
        address _to,
        uint256 _fee,
        bool _useInternalRouter
    ) external {
        require(_to != address(0), "Aggregator: _to not set");

        if(_useInternalRouter) {
            (bool success,) = InternalRouter.delegatecall(
                abi.encodeWithSelector(IRouter(InternalRouter).swapNoSplit.selector, 
                _trade, _to, _fee)
            );

            require(success, "Aggregator: InternalRouter.swapNoSplit failed");
        }
        else{
            (bool success,) = ExternalRouter.delegatecall(
                abi.encodeWithSelector(IRouter(ExternalRouter).swapNoSplit.selector, 
                _trade, _to, _fee)
            );

            require(success, "Aggregator: ExternalRouter.swapNoSplit failed");
        }
    }
}

File 2 of 5 : Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.7.0;

import "./Context.sol";
/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: Caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: New owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

File 3 of 5 : IRouter.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.7.0;
pragma experimental ABIEncoderV2;

/// @notice Router contract interface
interface IRouter {
    struct Trade {
        uint amountIn;
        uint amountOut;
        address[] path;
        address[] adapters;
    }

    struct FormattedOffer {
        uint[] amounts;
        address[] adapters;
        address[] path;
    }

    struct FormattedOfferWithGas {
        uint[] amounts;
        address[] adapters;
        address[] path;
        uint gasEstimate;
    }

    function findBestPath(
        uint256 _amountIn, 
        address _tokenIn, 
        address _tokenOut, 
        uint _maxSteps
    ) external view returns (FormattedOffer memory);

    function findBestPathWithGas(
        uint256 _amountIn, 
        address _tokenIn, 
        address _tokenOut, 
        uint _maxSteps,
        uint _gasPrice,
        uint _tokenOutPrice
    ) external view returns (FormattedOfferWithGas memory);
  
    function swapNoSplit(
        Trade calldata _trade,
        address _to,
        uint _fee
    ) external;
}

File 4 of 5 : SafeMath.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.7.0;

// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)

library SafeMath {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x, 'SafeMath: ds-math-add-overflow');
    }

    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x, 'SafeMath: ds-math-sub-underflow');
    }

    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x, 'SafeMath: ds-math-mul-overflow');
    }
}

File 5 of 5 : Context.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.7.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 999
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_internalRouter","type":"address"},{"internalType":"address","name":"_externalRouter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_oldExternalRouter","type":"address"},{"indexed":false,"internalType":"address","name":"_newExternalRouter","type":"address"}],"name":"UpdatedExternalRouter","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_oldInternalRouter","type":"address"},{"indexed":false,"internalType":"address","name":"_newInternalRouter","type":"address"}],"name":"UpdatedInternalRouter","type":"event"},{"inputs":[],"name":"ExternalRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"InternalRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WAVAX","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"maxSteps","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"}],"internalType":"struct AxialAggregator.FindBestPathParams","name":"_params","type":"tuple"}],"name":"findBestPath","outputs":[{"components":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"address[]","name":"adapters","type":"address[]"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"uint256","name":"gasEstimate","type":"uint256"}],"internalType":"struct IRouter.FormattedOfferWithGas","name":"bestPath","type":"tuple"},{"internalType":"bool","name":"useInternalRouter","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_externalRouter","type":"address"}],"name":"setExternalRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_internalRouter","type":"address"}],"name":"setInternalRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address[]","name":"adapters","type":"address[]"}],"internalType":"struct IRouter.Trade","name":"_trade","type":"tuple"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"bool","name":"_useInternalRouter","type":"bool"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040516200141f3803806200141f833981016040819052620000349162000138565b60006200004062000117565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160a01b038216620000bc5760405162461bcd60e51b8152600401620000b3906200016f565b60405180910390fd5b6001600160a01b038116620000e55760405162461bcd60e51b8152600401620000b390620001b2565b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055620001f5565b3390565b80516001600160a01b03811681146200013357600080fd5b919050565b600080604083850312156200014b578182fd5b62000156836200011b565b915062000166602084016200011b565b90509250929050565b60208082526023908201527f41676772656761746f723a205f696e7465726e616c526f75746572206e6f74206040820152621cd95d60ea1b606082015260800190565b60208082526023908201527f41676772656761746f723a205f65787465726e616c526f75746572206e6f74206040820152621cd95d60ea1b606082015260800190565b61121a80620002056000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80638da5cb5b11610076578063ca29bd651161005b578063ca29bd651461014d578063d4768be414610155578063f2fde38b1461015d576100be565b80638da5cb5b146101325780639a39db9b1461013a576100be565b806373b295c2116100a757806373b295c2146100f7578063741ba4451461010c5780638b0261881461011f576100be565b806307973b49146100c3578063715018a6146100ed575b600080fd5b6100d66100d1366004610bd4565b610170565b6040516100e4929190610fbd565b60405180910390f35b6100f5610408565b005b6100ff6104d3565b6040516100e49190610e99565b6100f561011a366004610d68565b6104eb565b6100f561012d366004610bb1565b610722565b6100ff61080c565b6100f5610148366004610bb1565b61081b565b6100ff610905565b6100ff610914565b6100f561016b366004610bb1565b610923565b610178610aba565b6000610182610aba565b60025460009081906001600160a01b0316634c09cf4e670de0b6b3a764000073d00ae08403b9bbb9124bb305c09058e32c39a48c6101c660608b0160408c01610bb1565b60026040518563ffffffff1660e01b81526004016101e79493929190610ec7565b60006040518083038186803b1580156101ff57600080fd5b505afa158015610213573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261023b9190810190610ca9565b90506000610279633b9aca006080890135845180519290910491600019810190811061026357fe5b6020026020010151610a4490919063ffffffff16565b6001549091506001600160a01b0316639140940f883561029f60408b0160208c01610bb1565b6102af60608c0160408d01610bb1565b8b606001358c60800135876040518763ffffffff1660e01b81526004016102db969594939291906110e1565b60006040518083038186803b1580156102f357600080fd5b505afa158015610307573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261032f9190810190610beb565b6020810151519094501561034657600192506103fc565b6002546001600160a01b0316639140940f883561036960408b0160208c01610bb1565b61037960608c0160408d01610bb1565b8b606001358c60800135876040518763ffffffff1660e01b81526004016103a5969594939291906110e1565b60006040518083038186803b1580156103bd57600080fd5b505afa1580156103d1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103f99190810190610beb565b93505b50919350915050915091565b610410610ab6565b6001600160a01b031661042161080c565b6001600160a01b03161461047c576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2043616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b73d00ae08403b9bbb9124bb305c09058e32c39a48c81565b6001600160a01b03831661051a5760405162461bcd60e51b815260040161051190610f39565b60405180910390fd5b8015610620576001546040516000916001600160a01b0316906335f96fc360e11b9061054e90889088908890602401611063565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516105b99190610e60565b600060405180830381855af49150503d80600081146105f4576040519150601f19603f3d011682016040523d82523d6000602084013e6105f9565b606091505b505090508061061a5760405162461bcd60e51b815260040161051190610eec565b5061071c565b6002546040516000916001600160a01b0316906335f96fc360e11b9061064e90889088908890602401611063565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516106b99190610e60565b600060405180830381855af49150503d80600081146106f4576040519150601f19603f3d011682016040523d82523d6000602084013e6106f9565b606091505b505090508061071a5760405162461bcd60e51b815260040161051190610f70565b505b50505050565b61072a610ab6565b6001600160a01b031661073b61080c565b6001600160a01b031614610796576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2043616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001546040517fc53f0f61dd25e5fcae38288dbd423bce773582f996b332c8eba480a602077d6d916107d5916001600160a01b03909116908490610ead565b60405180910390a16001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b031690565b610823610ab6565b6001600160a01b031661083461080c565b6001600160a01b03161461088f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2043616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6002546040517f75bc5052c60e9cff21c374240e880342b132d6548ab38f6aa187419912371e82916108ce916001600160a01b03909116908490610ead565b60405180910390a16002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6002546001600160a01b031681565b6001546001600160a01b031681565b61092b610ab6565b6001600160a01b031661093c61080c565b6001600160a01b031614610997576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2043616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166109dc5760405162461bcd60e51b81526004018080602001828103825260268152602001806111bf6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000811580610a5f57505080820282828281610a5c57fe5b04145b610ab0576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a2064732d6d6174682d6d756c2d6f766572666c6f770000604482015290519081900360640190fd5b92915050565b3390565b6040518060800160405280606081526020016060815260200160608152602001600081525090565b600082601f830112610af2578081fd5b81516020610b07610b0283611139565b611115565b8281528181019085830183850287018401881015610b23578586fd5b855b85811015610b4a578151610b38816111a6565b84529284019290840190600101610b25565b5090979650505050505050565b600082601f830112610b67578081fd5b81516020610b77610b0283611139565b8281528181019085830183850287018401881015610b93578586fd5b855b85811015610b4a57815184529284019290840190600101610b95565b600060208284031215610bc2578081fd5b8135610bcd816111a6565b9392505050565b600060a08284031215610be5578081fd5b50919050565b600060208284031215610bfc578081fd5b815167ffffffffffffffff80821115610c13578283fd5b9083019060808286031215610c26578283fd5b610c306080611115565b825182811115610c3e578485fd5b610c4a87828601610b57565b825250602083015182811115610c5e578485fd5b610c6a87828601610ae2565b602083015250604083015182811115610c81578485fd5b610c8d87828601610ae2565b6040830152506060830151606082015280935050505092915050565b600060208284031215610cba578081fd5b815167ffffffffffffffff80821115610cd1578283fd5b9083019060608286031215610ce4578283fd5b604051606081018181108382111715610cf957fe5b604052825182811115610d0a578485fd5b610d1687828601610b57565b825250602083015182811115610d2a578485fd5b610d3687828601610ae2565b602083015250604083015182811115610d4d578485fd5b610d5987828601610ae2565b60408301525095945050505050565b60008060008060808587031215610d7d578283fd5b843567ffffffffffffffff811115610d93578384fd5b850160808188031215610da4578384fd5b93506020850135610db4816111a6565b92506040850135915060608501358015158114610dcf578182fd5b939692955090935050565b60008284526020808501945082825b85811015610e17578135610dfc816111a6565b6001600160a01b031687529582019590820190600101610de9565b509495945050505050565b6000815180845260208085019450808401835b83811015610e175781516001600160a01b031687529582019590820190600101610e35565b15159052565b60008251815b81811015610e805760208186018101518583015201610e66565b81811115610e8e5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b9384526001600160a01b03928316602085015291166040830152606082015260800190565b6020808252602d908201527f41676772656761746f723a20496e7465726e616c526f757465722e737761704e60408201526c1bd4dc1b1a5d0819985a5b1959609a1b606082015260800190565b60208082526017908201527f41676772656761746f723a205f746f206e6f7420736574000000000000000000604082015260600190565b6020808252602d908201527f41676772656761746f723a2045787465726e616c526f757465722e737761704e60408201526c1bd4dc1b1a5d0819985a5b1959609a1b606082015260800190565b60006040825260c0820184516080604085015281815180845260e086019150602093508383019250845b8181101561100357835183529284019291840191600101610fe7565b5050828701519150603f19808683030160608701526110228284610e22565b92506040880151915080868403016080870152506110408282610e22565b606088015160a0870152935061105b91505081840185610e5a565b509392505050565b60006060825284356060830152602085013560808301526110876040860186611157565b608060a085015261109c60e085018284610dda565b9150506110ac6060870187611157565b848303605f190160c08601526110c3838284610dda565b6001600160a01b039790971660208601525050505060400152919050565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b60405181810167ffffffffffffffff8111828210171561113157fe5b604052919050565b600067ffffffffffffffff82111561114d57fe5b5060209081020190565b6000808335601e1984360301811261116d578283fd5b830160208101925035905067ffffffffffffffff81111561118d57600080fd5b60208102360383131561119f57600080fd5b9250929050565b6001600160a01b03811681146111bb57600080fd5b5056fe4f776e61626c653a204e6577206f776e657220697320746865207a65726f2061646472657373a264697066735822122022b0ad168b8bdbc301f545d2479dda5b59b0f292f4029541c9c3854167be60b564736f6c63430007060033000000000000000000000000c814223abdc244b09340a3725891beeff91467c400000000000000000000000074746404cb846249bccec11d9313cacb7fda4dc8

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000c814223abdc244b09340a3725891beeff91467c400000000000000000000000074746404cb846249bccec11d9313cacb7fda4dc8

-----Decoded View---------------
Arg [0] : _internalRouter (address): 0xc814223abdc244b09340a3725891beeff91467c4
Arg [1] : _externalRouter (address): 0x74746404cb846249bccec11d9313cacb7fda4dc8

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c814223abdc244b09340a3725891beeff91467c4
Arg [1] : 00000000000000000000000074746404cb846249bccec11d9313cacb7fda4dc8


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading