FTM Price: $0.512535 (-4.53%)
 

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Simple Swap864985732024-07-22 22:39:0715 mins ago1721687947IN
0x41d59d66...b7bb18f28
0 FTM0.0060651117.34573725
Simple Swap864985252024-07-22 22:38:2115 mins ago1721687901IN
0x41d59d66...b7bb18f28
11 FTM0.0032694917.12119232
Simple Swap864983492024-07-22 22:36:0718 mins ago1721687767IN
0x41d59d66...b7bb18f28
0 FTM0.0076436717.12119232
Simple Swap864974792024-07-22 22:25:1729 mins ago1721687117IN
0x41d59d66...b7bb18f28
0 FTM0.004240717.18684985
Simple Swap864945472024-07-22 21:47:331 hr ago1721684853IN
0x41d59d66...b7bb18f28
0 FTM0.0077164518.2763005
Simple Swap864900922024-07-22 20:52:432 hrs ago1721681563IN
0x41d59d66...b7bb18f28
0 FTM0.0047788621
Multi Swap864875552024-07-22 20:21:232 hrs ago1721679683IN
0x41d59d66...b7bb18f28
0 FTM0.0172766220.96446447
Multi Swap864861552024-07-22 20:04:082 hrs ago1721678648IN
0x41d59d66...b7bb18f28
0 FTM0.0157188522.26757025
Mega Swap864850232024-07-22 19:50:293 hrs ago1721677829IN
0x41d59d66...b7bb18f28
0 FTM0.0149276922.47676201
Simple Swap864821552024-07-22 19:15:503 hrs ago1721675750IN
0x41d59d66...b7bb18f28
0 FTM0.0091023225
Simple Swap864746932024-07-22 17:47:405 hrs ago1721670460IN
0x41d59d66...b7bb18f28
0 FTM0.0064323621.83328191
Simple Swap864699322024-07-22 16:50:096 hrs ago1721667009IN
0x41d59d66...b7bb18f28
0 FTM0.0048087920.61534982
Mega Swap864648602024-07-22 15:47:117 hrs ago1721663231IN
0x41d59d66...b7bb18f28
0 FTM0.0170115620.93174388
Multi Swap864513592024-07-22 13:02:599 hrs ago1721653379IN
0x41d59d66...b7bb18f28
0 FTM0.049087418.50966264
Simple Swap864512102024-07-22 13:01:129 hrs ago1721653272IN
0x41d59d66...b7bb18f28
0 FTM0.0048921119.1440778
Simple Swap864423242024-07-22 11:14:1111 hrs ago1721646851IN
0x41d59d66...b7bb18f28
0 FTM0.0038257116.40289452
Simple Swap864395982024-07-22 10:40:4012 hrs ago1721644840IN
0x41d59d66...b7bb18f28
0 FTM0.0036169916.57144341
Simple Swap864395702024-07-22 10:40:2112 hrs ago1721644821IN
0x41d59d66...b7bb18f28
0 FTM0.0036169916.57144341
Simple Swap864395462024-07-22 10:40:0212 hrs ago1721644802IN
0x41d59d66...b7bb18f28
0 FTM0.0036169916.57144341
Simple Swap864395282024-07-22 10:39:4612 hrs ago1721644786IN
0x41d59d66...b7bb18f28
0 FTM0.0036169916.57144341
Simple Swap864395042024-07-22 10:39:2812 hrs ago1721644768IN
0x41d59d66...b7bb18f28
0 FTM0.0036169916.57144341
Simple Swap864296522024-07-22 8:38:5214 hrs ago1721637532IN
0x41d59d66...b7bb18f28
0 FTM0.0054802316.15560129
Simple Swap864257892024-07-22 7:51:2415 hrs ago1721634684IN
0x41d59d66...b7bb18f28
0 FTM0.0047509220
Simple Swap864250612024-07-22 7:42:1515 hrs ago1721634135IN
0x41d59d66...b7bb18f28
28.75732235 FTM0.003227517
Simple Swap864065722024-07-22 3:43:0919 hrs ago1721619789IN
0x41d59d66...b7bb18f28
0 FTM0.002566188.66826761
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
864985252024-07-22 22:38:2115 mins ago1721687901
0x41d59d66...b7bb18f28
11 FTM
864250612024-07-22 7:42:1515 hrs ago1721634135
0x41d59d66...b7bb18f28
28.75732235 FTM
863936382024-07-22 0:51:5222 hrs ago1721609512
0x41d59d66...b7bb18f28
440 FTM
863753652024-07-21 20:53:0926 hrs ago1721595189
0x41d59d66...b7bb18f28
1 wei
863502702024-07-21 15:16:4831 hrs ago1721575008
0x41d59d66...b7bb18f28
35 FTM
863259252024-07-21 10:18:3336 hrs ago1721557113
0x41d59d66...b7bb18f28
250 FTM
863251102024-07-21 10:08:2836 hrs ago1721556508
0x41d59d66...b7bb18f28
250 FTM
863072232024-07-21 6:23:4840 hrs ago1721543028
0x41d59d66...b7bb18f28
290.99492513 FTM
862959562024-07-21 3:58:1642 hrs ago1721534296
0x41d59d66...b7bb18f28
82.73582835 FTM
862756352024-07-20 23:21:5547 hrs ago1721517715
0x41d59d66...b7bb18f28
187 FTM
862535582024-07-20 18:44:242 days ago1721501064
0x41d59d66...b7bb18f28
352.99531261 FTM
862236212024-07-20 12:27:492 days ago1721478469
0x41d59d66...b7bb18f28
11 FTM
862076992024-07-20 8:59:122 days ago1721465952
0x41d59d66...b7bb18f28
949 FTM
862070542024-07-20 8:50:562 days ago1721465456
0x41d59d66...b7bb18f28
155 FTM
862063052024-07-20 8:41:392 days ago1721464899
0x41d59d66...b7bb18f28
0.23933887 FTM
861881522024-07-20 4:39:452 days ago1721450385
0x41d59d66...b7bb18f28
1 wei
861879642024-07-20 4:37:112 days ago1721450231
0x41d59d66...b7bb18f28
1 wei
861489112024-07-19 20:05:383 days ago1721419538
0x41d59d66...b7bb18f28
8.9261633 FTM
861445732024-07-19 19:07:483 days ago1721416068
0x41d59d66...b7bb18f28
270 FTM
861424092024-07-19 18:40:303 days ago1721414430
0x41d59d66...b7bb18f28
25 FTM
861414492024-07-19 18:28:113 days ago1721413691
0x41d59d66...b7bb18f28
500 FTM
861407542024-07-19 18:19:303 days ago1721413170
0x41d59d66...b7bb18f28
500 FTM
861381962024-07-19 17:47:333 days ago1721411253
0x41d59d66...b7bb18f28
1 FTM
861339582024-07-19 16:55:073 days ago1721408107
0x41d59d66...b7bb18f28
190.35627252 FTM
861225062024-07-19 14:34:043 days ago1721399644
0x41d59d66...b7bb18f28
519.89071879 FTM
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ProxyParaswap

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 6 : ProxyParaSwap.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import {IParaswap} from "contracts/Interfaces/IParaswap.sol";
import {Utils} from "contracts/Libraries/Utils.sol";

contract ProxyParaswap is Ownable {
	IParaswap public paraswap;

	constructor(address _paraswap) Ownable(msg.sender) {
		paraswap = IParaswap(_paraswap);
	}

	function transferTokensFromProxy(
        address token,
        uint256 amount,
        bytes memory permit
    ) private {
        if (token != Utils.ethAddress()) {
            Utils.permit(token, permit);
            IERC20(token).transferFrom(msg.sender, address(this), amount);
			IERC20(token).approve(address(0x216B4B4Ba9F3e719726886d34a177484278Bfcae), amount);
        }
    }

	function multiSwap(Utils.SellData memory data) external payable returns (uint256) {
		transferTokensFromProxy(data.fromToken, data.fromAmount, data.permit);
		if (data.beneficiary == address(0)) data.beneficiary = payable(msg.sender);
		return paraswap.protectedMultiSwap{value: msg.value}(data);
	}

	function megaSwap(Utils.MegaSwapSellData memory data) external payable returns (uint256) {
		transferTokensFromProxy(data.fromToken, data.fromAmount, data.permit);
		if (data.beneficiary == address(0)) data.beneficiary = payable(msg.sender);
		return paraswap.protectedMegaSwap{value: msg.value}(data);
	}

	function simpleSwap(Utils.SimpleData memory data) external payable returns (uint256) {
		transferTokensFromProxy(data.fromToken, data.fromAmount, data.permit);
		if (data.beneficiary == address(0)) data.beneficiary = payable(msg.sender);
		return paraswap.simpleSwap{value: msg.value}(data);
	}

	function withdrawToken(address token, uint256 amount) external onlyOwner {
		IERC20(token).transfer(msg.sender, amount);
	}

	function withdrawFtm(uint256 amount) external onlyOwner {
		payable(msg.sender).transfer(amount);
	}

	receive() external payable {}
}

File 2 of 6 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)

pragma solidity ^0.8.20;

import {Context} from "../utils/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.
 *
 * The initial owner is set to the address provided by the deployer. 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;

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);

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

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(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 {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 3 of 6 : IERC20.sol
// 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);
}

File 4 of 6 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)

pragma solidity ^0.8.20;

/**
 * @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 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) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

File 5 of 6 : IParaswap.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import {Utils} from "contracts/Libraries/Utils.sol";

interface IParaswap {
    event Swapped(
        bytes16 uuid,
        address initiator,
        address indexed beneficiary,
        address indexed srcToken,
        address indexed destToken,
        uint256 srcAmount,
        uint256 receivedAmount,
        uint256 expectedAmount
    );

    event Bought(
        bytes16 uuid,
        address initiator,
        address indexed beneficiary,
        address indexed srcToken,
        address indexed destToken,
        uint256 srcAmount,
        uint256 receivedAmount
    );

    event FeeTaken(
        uint256 fee,
        uint256 partnerShare,
        uint256 paraswapShare
    );

    function multiSwap(
        Utils.SellData calldata data
    )
        external
        payable
        returns (uint256);

    function megaSwap(
        Utils.MegaSwapSellData calldata data
    )
        external
        payable
        returns (uint256);

    function protectedMultiSwap(
        Utils.SellData calldata data
    )
        external
        payable
        returns (uint256);

    function protectedMegaSwap(
        Utils.MegaSwapSellData calldata data
    )
        external
        payable
        returns (uint256);

    function protectedSimpleSwap(
        Utils.SimpleData calldata data
    )
        external
        payable
        returns (uint256 receivedAmount);

    function protectedSimpleBuy(
        Utils.SimpleData calldata data
    )
        external
        payable;

    function simpleSwap(
        Utils.SimpleData calldata data
    )
        external
        payable
        returns (uint256 receivedAmount);

    function simpleBuy(
        Utils.SimpleData calldata data
    )
        external
        payable;

    function swapOnUniswap(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path
    )
        external
        payable;

    function swapOnUniswapFork(
        address factory,
        bytes32 initCode,
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path
    )
        external
        payable;

    function buyOnUniswap(
        uint256 amountInMax,
        uint256 amountOut,
        address[] calldata path
    )
        external
        payable;

    function buyOnUniswapFork(
        address factory,
        bytes32 initCode,
        uint256 amountInMax,
        uint256 amountOut,
        address[] calldata path
    )
        external
        payable;

    function swapOnUniswapV2Fork(
        address tokenIn,
        uint256 amountIn,
        uint256 amountOutMin,
        address weth,
        uint256[] calldata pools
    )
        external
        payable;

    function buyOnUniswapV2Fork(
        address tokenIn,
        uint256 amountInMax,
        uint256 amountOut,
        address weth,
        uint256[] calldata pools
    )
        external
        payable;

    function swapOnZeroXv2(
        IERC20 fromToken,
        IERC20 toToken,
        uint256 fromAmount,
        uint256 amountOutMin,
        address exchange,
        bytes calldata payload
    )
    external
    payable;

    function swapOnZeroXv4(
        IERC20 fromToken,
        IERC20 toToken,
        uint256 fromAmount,
        uint256 amountOutMin,
        address exchange,
        bytes calldata payload
    )
    external
    payable;
}

File 6 of 6 : Utils.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

interface IERC20Permit {
    function permit(
        address owner,
        address spender,
        uint256 amount,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;
}

interface IERC20PermitLegacy {
    function permit(
        address holder,
        address spender,
        uint256 nonce,
        uint256 expiry,
        bool allowed,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;
}

library Utils {
	address private constant ETH_ADDRESS = address(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE);

	function ethAddress() internal pure returns (address) {
        return ETH_ADDRESS;
    }

	function permit(address token, bytes memory _permit) internal {
        if (_permit.length == 32 * 7) {
            (bool success, ) = token.call(abi.encodePacked(IERC20Permit.permit.selector, _permit));
            require(success, "Permit failed");
        }

        if (_permit.length == 32 * 8) {
            (bool success, ) = token.call(abi.encodePacked(IERC20PermitLegacy.permit.selector, _permit));
            require(success, "Permit failed");
        }
    }

    struct SellData {
        address fromToken;
        uint256 fromAmount;
        uint256 toAmount;
        uint256 expectedAmount;
        address payable beneficiary;
        Utils.Path[] path;
        address payable partner;
        uint256 feePercent;
        bytes permit;
        uint256 deadline;
        bytes16 uuid;
    }

    struct MegaSwapSellData {
        address fromToken;
        uint256 fromAmount;
        uint256 toAmount;
        uint256 expectedAmount;
        address payable beneficiary;
        Utils.MegaSwapPath[] path;
        address payable partner;
        uint256 feePercent;
        bytes permit;
        uint256 deadline;
        bytes16 uuid;
    }

    struct SimpleData {
        address fromToken;
        address toToken;
        uint256 fromAmount;
        uint256 toAmount;
        uint256 expectedAmount;
        address[] callees;
        bytes exchangeData;
        uint256[] startIndexes;
        uint256[] values;
        address payable beneficiary;
        address payable partner;
        uint256 feePercent;
        bytes permit;
        uint256 deadline;
        bytes16 uuid;
    }

    struct Adapter {
        address payable adapter;
        uint256 percent;
        uint256 networkFee;
        Route[] route;
    }

    struct Route {
        uint256 index;
        address targetExchange;
        uint percent;
        bytes payload;
        uint256 networkFee;
    }

    struct MegaSwapPath {
        uint256 fromAmountPercent;
        Path[] path;
    }

    struct Path {
        address to;
        uint256 totalNetworkFee;
        Adapter[] adapters;
    }
}

Settings
{
  "evmVersion": "paris",
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_paraswap","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"components":[{"internalType":"address","name":"fromToken","type":"address"},{"internalType":"uint256","name":"fromAmount","type":"uint256"},{"internalType":"uint256","name":"toAmount","type":"uint256"},{"internalType":"uint256","name":"expectedAmount","type":"uint256"},{"internalType":"address payable","name":"beneficiary","type":"address"},{"components":[{"internalType":"uint256","name":"fromAmountPercent","type":"uint256"},{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"totalNetworkFee","type":"uint256"},{"components":[{"internalType":"address payable","name":"adapter","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"networkFee","type":"uint256"},{"components":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"targetExchange","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint256","name":"networkFee","type":"uint256"}],"internalType":"struct Utils.Route[]","name":"route","type":"tuple[]"}],"internalType":"struct Utils.Adapter[]","name":"adapters","type":"tuple[]"}],"internalType":"struct Utils.Path[]","name":"path","type":"tuple[]"}],"internalType":"struct Utils.MegaSwapPath[]","name":"path","type":"tuple[]"},{"internalType":"address payable","name":"partner","type":"address"},{"internalType":"uint256","name":"feePercent","type":"uint256"},{"internalType":"bytes","name":"permit","type":"bytes"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bytes16","name":"uuid","type":"bytes16"}],"internalType":"struct Utils.MegaSwapSellData","name":"data","type":"tuple"}],"name":"megaSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"fromToken","type":"address"},{"internalType":"uint256","name":"fromAmount","type":"uint256"},{"internalType":"uint256","name":"toAmount","type":"uint256"},{"internalType":"uint256","name":"expectedAmount","type":"uint256"},{"internalType":"address payable","name":"beneficiary","type":"address"},{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"totalNetworkFee","type":"uint256"},{"components":[{"internalType":"address payable","name":"adapter","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"networkFee","type":"uint256"},{"components":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"targetExchange","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint256","name":"networkFee","type":"uint256"}],"internalType":"struct Utils.Route[]","name":"route","type":"tuple[]"}],"internalType":"struct Utils.Adapter[]","name":"adapters","type":"tuple[]"}],"internalType":"struct Utils.Path[]","name":"path","type":"tuple[]"},{"internalType":"address payable","name":"partner","type":"address"},{"internalType":"uint256","name":"feePercent","type":"uint256"},{"internalType":"bytes","name":"permit","type":"bytes"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bytes16","name":"uuid","type":"bytes16"}],"internalType":"struct Utils.SellData","name":"data","type":"tuple"}],"name":"multiSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paraswap","outputs":[{"internalType":"contract IParaswap","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"fromToken","type":"address"},{"internalType":"address","name":"toToken","type":"address"},{"internalType":"uint256","name":"fromAmount","type":"uint256"},{"internalType":"uint256","name":"toAmount","type":"uint256"},{"internalType":"uint256","name":"expectedAmount","type":"uint256"},{"internalType":"address[]","name":"callees","type":"address[]"},{"internalType":"bytes","name":"exchangeData","type":"bytes"},{"internalType":"uint256[]","name":"startIndexes","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"address payable","name":"partner","type":"address"},{"internalType":"uint256","name":"feePercent","type":"uint256"},{"internalType":"bytes","name":"permit","type":"bytes"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bytes16","name":"uuid","type":"bytes16"}],"internalType":"struct Utils.SimpleData","name":"data","type":"tuple"}],"name":"simpleSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawFtm","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b5060405162002bda38038062002bda833981810160405281019062000037919062000235565b33600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000ad5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000a4919062000278565b60405180910390fd5b620000be816200010760201b60201c565b5080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000295565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001fd82620001d0565b9050919050565b6200020f81620001f0565b81146200021b57600080fd5b50565b6000815190506200022f8162000204565b92915050565b6000602082840312156200024e576200024d620001cb565b5b60006200025e848285016200021e565b91505092915050565b6200027281620001f0565b82525050565b60006020820190506200028f600083018462000267565b92915050565b61293580620002a56000396000f3fe60806040526004361061008a5760003560e01c80637261f2fa116100595780637261f2fa146101385780638da5cb5b146101615780639e281a981461018c578063a94e78ef146101b5578063f2fde38b146101e557610091565b806346c67b6d1461009657806354e3f31b146100c65780635af7462f146100f6578063715018a61461012157610091565b3661009157005b600080fd5b6100b060048036038101906100ab919061157e565b61020e565b6040516100bd91906115d6565b60405180910390f35b6100e060048036038101906100db9190611967565b61033f565b6040516100ed91906115d6565b60405180910390f35b34801561010257600080fd5b5061010b610472565b6040516101189190611a0f565b60405180910390f35b34801561012d57600080fd5b50610136610498565b005b34801561014457600080fd5b5061015f600480360381019061015a9190611a2a565b6104ac565b005b34801561016d57600080fd5b506101766104fe565b6040516101839190611a66565b60405180910390f35b34801561019857600080fd5b506101b360048036038101906101ae9190611a81565b610527565b005b6101cf60048036038101906101ca9190611c05565b6105b2565b6040516101dc91906115d6565b60405180910390f35b3480156101f157600080fd5b5061020c60048036038101906102079190611c4e565b6106e3565b005b600061022882600001518360200151846101000151610769565b600073ffffffffffffffffffffffffffffffffffffffff16826080015173ffffffffffffffffffffffffffffffffffffffff16036102995733826080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166337809db434846040518363ffffffff1660e01b81526004016102f5919061229a565b60206040518083038185885af1158015610313573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061033891906122d1565b9050919050565b600061035982600001518360400151846101800151610769565b600073ffffffffffffffffffffffffffffffffffffffff1682610120015173ffffffffffffffffffffffffffffffffffffffff16036103cc573382610120019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166354e3f31b34846040518363ffffffff1660e01b815260040161042891906125bb565b60206040518083038185885af1158015610446573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061046b91906122d1565b9050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6104a06108c7565b6104aa600061094e565b565b6104b46108c7565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156104fa573d6000803e3d6000fd5b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61052f6108c7565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161056a9291906125dd565b6020604051808303816000875af1158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad919061263e565b505050565b60006105cc82600001518360200151846101000151610769565b600073ffffffffffffffffffffffffffffffffffffffff16826080015173ffffffffffffffffffffffffffffffffffffffff160361063d5733826080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632478ba3e34846040518363ffffffff1660e01b81526004016106999190612761565b60206040518083038185885af11580156106b7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106dc91906122d1565b9050919050565b6106eb6108c7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361075d5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016107549190611a66565b60405180910390fd5b6107668161094e565b50565b610771610a12565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146108c2576107ad8382610a2e565b8273ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b81526004016107ea93929190612783565b6020604051808303816000875af1158015610809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082d919061263e565b508273ffffffffffffffffffffffffffffffffffffffff1663095ea7b373216b4b4ba9f3e719726886d34a177484278bfcae846040518363ffffffff1660e01b815260040161087d9291906125dd565b6020604051808303816000875af115801561089c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c0919061263e565b505b505050565b6108cf610bf3565b73ffffffffffffffffffffffffffffffffffffffff166108ed6104fe565b73ffffffffffffffffffffffffffffffffffffffff161461094c57610910610bf3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109439190611a66565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee905090565b60e0815103610b0e5760008273ffffffffffffffffffffffffffffffffffffffff1663d505accf60e01b83604051602001610a6a929190612843565b604051602081830303815290604052604051610a86919061286b565b6000604051808303816000865af19150503d8060008114610ac3576040519150601f19603f3d011682016040523d82523d6000602084013e610ac8565b606091505b5050905080610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b03906128df565b60405180910390fd5b505b610100815103610bef5760008273ffffffffffffffffffffffffffffffffffffffff16638fcbaf0c60e01b83604051602001610b4b929190612843565b604051602081830303815290604052604051610b67919061286b565b6000604051808303816000865af19150503d8060008114610ba4576040519150601f19603f3d011682016040523d82523d6000602084013e610ba9565b606091505b5050905080610bed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be4906128df565b60405180910390fd5b505b5050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610c5d82610c14565b810181811067ffffffffffffffff82111715610c7c57610c7b610c25565b5b80604052505050565b6000610c8f610bfb565b9050610c9b8282610c54565b919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cd082610ca5565b9050919050565b610ce081610cc5565b8114610ceb57600080fd5b50565b600081359050610cfd81610cd7565b92915050565b6000819050919050565b610d1681610d03565b8114610d2157600080fd5b50565b600081359050610d3381610d0d565b92915050565b6000610d4482610ca5565b9050919050565b610d5481610d39565b8114610d5f57600080fd5b50565b600081359050610d7181610d4b565b92915050565b600080fd5b600067ffffffffffffffff821115610d9757610d96610c25565b5b602082029050602081019050919050565b600080fd5b600067ffffffffffffffff821115610dc857610dc7610c25565b5b602082029050602081019050919050565b600067ffffffffffffffff821115610df457610df3610c25565b5b602082029050602081019050919050565b600067ffffffffffffffff821115610e2057610e1f610c25565b5b602082029050602081019050919050565b600080fd5b600067ffffffffffffffff821115610e5157610e50610c25565b5b610e5a82610c14565b9050602081019050919050565b82818337600083830152505050565b6000610e89610e8484610e36565b610c85565b905082815260208101848484011115610ea557610ea4610e31565b5b610eb0848285610e67565b509392505050565b600082601f830112610ecd57610ecc610d77565b5b8135610edd848260208601610e76565b91505092915050565b600060a08284031215610efc57610efb610c0f565b5b610f0660a0610c85565b90506000610f1684828501610d24565b6000830152506020610f2a84828501610cee565b6020830152506040610f3e84828501610d24565b604083015250606082013567ffffffffffffffff811115610f6257610f61610ca0565b5b610f6e84828501610eb8565b6060830152506080610f8284828501610d24565b60808301525092915050565b6000610fa1610f9c84610e05565b610c85565b90508083825260208201905060208402830185811115610fc457610fc3610da8565b5b835b8181101561100b57803567ffffffffffffffff811115610fe957610fe8610d77565b5b808601610ff68982610ee6565b85526020850194505050602081019050610fc6565b5050509392505050565b600082601f83011261102a57611029610d77565b5b813561103a848260208601610f8e565b91505092915050565b60006080828403121561105957611058610c0f565b5b6110636080610c85565b9050600061107384828501610d62565b600083015250602061108784828501610d24565b602083015250604061109b84828501610d24565b604083015250606082013567ffffffffffffffff8111156110bf576110be610ca0565b5b6110cb84828501611015565b60608301525092915050565b60006110ea6110e584610dd9565b610c85565b9050808382526020820190506020840283018581111561110d5761110c610da8565b5b835b8181101561115457803567ffffffffffffffff81111561113257611131610d77565b5b80860161113f8982611043565b8552602085019450505060208101905061110f565b5050509392505050565b600082601f83011261117357611172610d77565b5b81356111838482602086016110d7565b91505092915050565b6000606082840312156111a2576111a1610c0f565b5b6111ac6060610c85565b905060006111bc84828501610cee565b60008301525060206111d084828501610d24565b602083015250604082013567ffffffffffffffff8111156111f4576111f3610ca0565b5b6112008482850161115e565b60408301525092915050565b600061121f61121a84610dad565b610c85565b9050808382526020820190506020840283018581111561124257611241610da8565b5b835b8181101561128957803567ffffffffffffffff81111561126757611266610d77565b5b808601611274898261118c565b85526020850194505050602081019050611244565b5050509392505050565b600082601f8301126112a8576112a7610d77565b5b81356112b884826020860161120c565b91505092915050565b6000604082840312156112d7576112d6610c0f565b5b6112e16040610c85565b905060006112f184828501610d24565b600083015250602082013567ffffffffffffffff81111561131557611314610ca0565b5b61132184828501611293565b60208301525092915050565b600061134061133b84610d7c565b610c85565b9050808382526020820190506020840283018581111561136357611362610da8565b5b835b818110156113aa57803567ffffffffffffffff81111561138857611387610d77565b5b80860161139589826112c1565b85526020850194505050602081019050611365565b5050509392505050565b600082601f8301126113c9576113c8610d77565b5b81356113d984826020860161132d565b91505092915050565b60007fffffffffffffffffffffffffffffffff0000000000000000000000000000000082169050919050565b611417816113e2565b811461142257600080fd5b50565b6000813590506114348161140e565b92915050565b6000610160828403121561145157611450610c0f565b5b61145c610160610c85565b9050600061146c84828501610cee565b600083015250602061148084828501610d24565b602083015250604061149484828501610d24565b60408301525060606114a884828501610d24565b60608301525060806114bc84828501610d62565b60808301525060a082013567ffffffffffffffff8111156114e0576114df610ca0565b5b6114ec848285016113b4565b60a08301525060c061150084828501610d62565b60c08301525060e061151484828501610d24565b60e08301525061010082013567ffffffffffffffff81111561153957611538610ca0565b5b61154584828501610eb8565b6101008301525061012061155b84828501610d24565b6101208301525061014061157184828501611425565b6101408301525092915050565b60006020828403121561159457611593610c05565b5b600082013567ffffffffffffffff8111156115b2576115b1610c0a565b5b6115be8482850161143a565b91505092915050565b6115d081610d03565b82525050565b60006020820190506115eb60008301846115c7565b92915050565b600067ffffffffffffffff82111561160c5761160b610c25565b5b602082029050602081019050919050565b600061163061162b846115f1565b610c85565b9050808382526020820190506020840283018581111561165357611652610da8565b5b835b8181101561167c57806116688882610cee565b845260208401935050602081019050611655565b5050509392505050565b600082601f83011261169b5761169a610d77565b5b81356116ab84826020860161161d565b91505092915050565b600067ffffffffffffffff8211156116cf576116ce610c25565b5b602082029050602081019050919050565b60006116f36116ee846116b4565b610c85565b9050808382526020820190506020840283018581111561171657611715610da8565b5b835b8181101561173f578061172b8882610d24565b845260208401935050602081019050611718565b5050509392505050565b600082601f83011261175e5761175d610d77565b5b813561176e8482602086016116e0565b91505092915050565b60006101e0828403121561178e5761178d610c0f565b5b6117996101e0610c85565b905060006117a984828501610cee565b60008301525060206117bd84828501610cee565b60208301525060406117d184828501610d24565b60408301525060606117e584828501610d24565b60608301525060806117f984828501610d24565b60808301525060a082013567ffffffffffffffff81111561181d5761181c610ca0565b5b61182984828501611686565b60a08301525060c082013567ffffffffffffffff81111561184d5761184c610ca0565b5b61185984828501610eb8565b60c08301525060e082013567ffffffffffffffff81111561187d5761187c610ca0565b5b61188984828501611749565b60e08301525061010082013567ffffffffffffffff8111156118ae576118ad610ca0565b5b6118ba84828501611749565b610100830152506101206118d084828501610d62565b610120830152506101406118e684828501610d62565b610140830152506101606118fc84828501610d24565b6101608301525061018082013567ffffffffffffffff81111561192257611921610ca0565b5b61192e84828501610eb8565b610180830152506101a061194484828501610d24565b6101a0830152506101c061195a84828501611425565b6101c08301525092915050565b60006020828403121561197d5761197c610c05565b5b600082013567ffffffffffffffff81111561199b5761199a610c0a565b5b6119a784828501611777565b91505092915050565b6000819050919050565b60006119d56119d06119cb84610ca5565b6119b0565b610ca5565b9050919050565b60006119e7826119ba565b9050919050565b60006119f9826119dc565b9050919050565b611a09816119ee565b82525050565b6000602082019050611a246000830184611a00565b92915050565b600060208284031215611a4057611a3f610c05565b5b6000611a4e84828501610d24565b91505092915050565b611a6081610cc5565b82525050565b6000602082019050611a7b6000830184611a57565b92915050565b60008060408385031215611a9857611a97610c05565b5b6000611aa685828601610cee565b9250506020611ab785828601610d24565b9150509250929050565b60006101608284031215611ad857611ad7610c0f565b5b611ae3610160610c85565b90506000611af384828501610cee565b6000830152506020611b0784828501610d24565b6020830152506040611b1b84828501610d24565b6040830152506060611b2f84828501610d24565b6060830152506080611b4384828501610d62565b60808301525060a082013567ffffffffffffffff811115611b6757611b66610ca0565b5b611b7384828501611293565b60a08301525060c0611b8784828501610d62565b60c08301525060e0611b9b84828501610d24565b60e08301525061010082013567ffffffffffffffff811115611bc057611bbf610ca0565b5b611bcc84828501610eb8565b61010083015250610120611be284828501610d24565b61012083015250610140611bf884828501611425565b6101408301525092915050565b600060208284031215611c1b57611c1a610c05565b5b600082013567ffffffffffffffff811115611c3957611c38610c0a565b5b611c4584828501611ac1565b91505092915050565b600060208284031215611c6457611c63610c05565b5b6000611c7284828501610cee565b91505092915050565b611c8481610cc5565b82525050565b611c9381610d03565b82525050565b611ca281610d39565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d92578082015181840152602081019050611d77565b60008484015250505050565b6000611da982611d58565b611db38185611d63565b9350611dc3818560208601611d74565b611dcc81610c14565b840191505092915050565b600060a083016000830151611def6000860182611c8a565b506020830151611e026020860182611c7b565b506040830151611e156040860182611c8a565b5060608301518482036060860152611e2d8282611d9e565b9150506080830151611e426080860182611c8a565b508091505092915050565b6000611e598383611dd7565b905092915050565b6000602082019050919050565b6000611e7982611d2c565b611e838185611d37565b935083602082028501611e9585611d48565b8060005b85811015611ed15784840389528151611eb28582611e4d565b9450611ebd83611e61565b925060208a01995050600181019050611e99565b50829750879550505050505092915050565b6000608083016000830151611efb6000860182611c99565b506020830151611f0e6020860182611c8a565b506040830151611f216040860182611c8a565b5060608301518482036060860152611f398282611e6e565b9150508091505092915050565b6000611f528383611ee3565b905092915050565b6000602082019050919050565b6000611f7282611d00565b611f7c8185611d0b565b935083602082028501611f8e85611d1c565b8060005b85811015611fca5784840389528151611fab8582611f46565b9450611fb683611f5a565b925060208a01995050600181019050611f92565b50829750879550505050505092915050565b6000606083016000830151611ff46000860182611c7b565b5060208301516120076020860182611c8a565b506040830151848203604086015261201f8282611f67565b9150508091505092915050565b60006120388383611fdc565b905092915050565b6000602082019050919050565b600061205882611cd4565b6120628185611cdf565b93508360208202850161207485611cf0565b8060005b858110156120b05784840389528151612091858261202c565b945061209c83612040565b925060208a01995050600181019050612078565b50829750879550505050505092915050565b60006040830160008301516120da6000860182611c8a565b50602083015184820360208601526120f2828261204d565b9150508091505092915050565b600061210b83836120c2565b905092915050565b6000602082019050919050565b600061212b82611ca8565b6121358185611cb3565b93508360208202850161214785611cc4565b8060005b85811015612183578484038952815161216485826120ff565b945061216f83612113565b925060208a0199505060018101905061214b565b50829750879550505050505092915050565b61219e816113e2565b82525050565b6000610160830160008301516121bd6000860182611c7b565b5060208301516121d06020860182611c8a565b5060408301516121e36040860182611c8a565b5060608301516121f66060860182611c8a565b5060808301516122096080860182611c99565b5060a083015184820360a08601526122218282612120565b91505060c083015161223660c0860182611c99565b5060e083015161224960e0860182611c8a565b506101008301518482036101008601526122638282611d9e565b91505061012083015161227a610120860182611c8a565b5061014083015161228f610140860182612195565b508091505092915050565b600060208201905081810360008301526122b481846121a4565b905092915050565b6000815190506122cb81610d0d565b92915050565b6000602082840312156122e7576122e6610c05565b5b60006122f5848285016122bc565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006123368383611c7b565b60208301905092915050565b6000602082019050919050565b600061235a826122fe565b6123648185612309565b935061236f8361231a565b8060005b838110156123a0578151612387888261232a565b975061239283612342565b925050600181019050612373565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006123e58383611c8a565b60208301905092915050565b6000602082019050919050565b6000612409826123ad565b61241381856123b8565b935061241e836123c9565b8060005b8381101561244f57815161243688826123d9565b9750612441836123f1565b925050600181019050612422565b5085935050505092915050565b60006101e0830160008301516124756000860182611c7b565b5060208301516124886020860182611c7b565b50604083015161249b6040860182611c8a565b5060608301516124ae6060860182611c8a565b5060808301516124c16080860182611c8a565b5060a083015184820360a08601526124d9828261234f565b91505060c083015184820360c08601526124f38282611d9e565b91505060e083015184820360e086015261250d82826123fe565b91505061010083015184820361010086015261252982826123fe565b915050610120830151612540610120860182611c99565b50610140830151612555610140860182611c99565b5061016083015161256a610160860182611c8a565b506101808301518482036101808601526125848282611d9e565b9150506101a083015161259b6101a0860182611c8a565b506101c08301516125b06101c0860182612195565b508091505092915050565b600060208201905081810360008301526125d5818461245c565b905092915050565b60006040820190506125f26000830185611a57565b6125ff60208301846115c7565b9392505050565b60008115159050919050565b61261b81612606565b811461262657600080fd5b50565b60008151905061263881612612565b92915050565b60006020828403121561265457612653610c05565b5b600061266284828501612629565b91505092915050565b6000610160830160008301516126846000860182611c7b565b5060208301516126976020860182611c8a565b5060408301516126aa6040860182611c8a565b5060608301516126bd6060860182611c8a565b5060808301516126d06080860182611c99565b5060a083015184820360a08601526126e8828261204d565b91505060c08301516126fd60c0860182611c99565b5060e083015161271060e0860182611c8a565b5061010083015184820361010086015261272a8282611d9e565b915050610120830151612741610120860182611c8a565b50610140830151612756610140860182612195565b508091505092915050565b6000602082019050818103600083015261277b818461266b565b905092915050565b60006060820190506127986000830186611a57565b6127a56020830185611a57565b6127b260408301846115c7565b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b6128016127fc826127ba565b6127e6565b82525050565b600081905092915050565b600061281d82611d58565b6128278185612807565b9350612837818560208601611d74565b80840191505092915050565b600061284f82856127f0565b60048201915061285f8284612812565b91508190509392505050565b60006128778284612812565b915081905092915050565b600082825260208201905092915050565b7f5065726d6974206661696c656400000000000000000000000000000000000000600082015250565b60006128c9600d83612882565b91506128d482612893565b602082019050919050565b600060208201905081810360008301526128f8816128bc565b905091905056fea2646970667358221220baf7f370a3e1ad17f4b2abdfc34676e2fe5098a08199e43f125b833cf0bb469664736f6c63430008140033000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee57

Deployed Bytecode

0x60806040526004361061008a5760003560e01c80637261f2fa116100595780637261f2fa146101385780638da5cb5b146101615780639e281a981461018c578063a94e78ef146101b5578063f2fde38b146101e557610091565b806346c67b6d1461009657806354e3f31b146100c65780635af7462f146100f6578063715018a61461012157610091565b3661009157005b600080fd5b6100b060048036038101906100ab919061157e565b61020e565b6040516100bd91906115d6565b60405180910390f35b6100e060048036038101906100db9190611967565b61033f565b6040516100ed91906115d6565b60405180910390f35b34801561010257600080fd5b5061010b610472565b6040516101189190611a0f565b60405180910390f35b34801561012d57600080fd5b50610136610498565b005b34801561014457600080fd5b5061015f600480360381019061015a9190611a2a565b6104ac565b005b34801561016d57600080fd5b506101766104fe565b6040516101839190611a66565b60405180910390f35b34801561019857600080fd5b506101b360048036038101906101ae9190611a81565b610527565b005b6101cf60048036038101906101ca9190611c05565b6105b2565b6040516101dc91906115d6565b60405180910390f35b3480156101f157600080fd5b5061020c60048036038101906102079190611c4e565b6106e3565b005b600061022882600001518360200151846101000151610769565b600073ffffffffffffffffffffffffffffffffffffffff16826080015173ffffffffffffffffffffffffffffffffffffffff16036102995733826080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166337809db434846040518363ffffffff1660e01b81526004016102f5919061229a565b60206040518083038185885af1158015610313573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061033891906122d1565b9050919050565b600061035982600001518360400151846101800151610769565b600073ffffffffffffffffffffffffffffffffffffffff1682610120015173ffffffffffffffffffffffffffffffffffffffff16036103cc573382610120019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166354e3f31b34846040518363ffffffff1660e01b815260040161042891906125bb565b60206040518083038185885af1158015610446573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061046b91906122d1565b9050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6104a06108c7565b6104aa600061094e565b565b6104b46108c7565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156104fa573d6000803e3d6000fd5b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61052f6108c7565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161056a9291906125dd565b6020604051808303816000875af1158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad919061263e565b505050565b60006105cc82600001518360200151846101000151610769565b600073ffffffffffffffffffffffffffffffffffffffff16826080015173ffffffffffffffffffffffffffffffffffffffff160361063d5733826080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632478ba3e34846040518363ffffffff1660e01b81526004016106999190612761565b60206040518083038185885af11580156106b7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106dc91906122d1565b9050919050565b6106eb6108c7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361075d5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016107549190611a66565b60405180910390fd5b6107668161094e565b50565b610771610a12565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146108c2576107ad8382610a2e565b8273ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b81526004016107ea93929190612783565b6020604051808303816000875af1158015610809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082d919061263e565b508273ffffffffffffffffffffffffffffffffffffffff1663095ea7b373216b4b4ba9f3e719726886d34a177484278bfcae846040518363ffffffff1660e01b815260040161087d9291906125dd565b6020604051808303816000875af115801561089c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c0919061263e565b505b505050565b6108cf610bf3565b73ffffffffffffffffffffffffffffffffffffffff166108ed6104fe565b73ffffffffffffffffffffffffffffffffffffffff161461094c57610910610bf3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109439190611a66565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee905090565b60e0815103610b0e5760008273ffffffffffffffffffffffffffffffffffffffff1663d505accf60e01b83604051602001610a6a929190612843565b604051602081830303815290604052604051610a86919061286b565b6000604051808303816000865af19150503d8060008114610ac3576040519150601f19603f3d011682016040523d82523d6000602084013e610ac8565b606091505b5050905080610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b03906128df565b60405180910390fd5b505b610100815103610bef5760008273ffffffffffffffffffffffffffffffffffffffff16638fcbaf0c60e01b83604051602001610b4b929190612843565b604051602081830303815290604052604051610b67919061286b565b6000604051808303816000865af19150503d8060008114610ba4576040519150601f19603f3d011682016040523d82523d6000602084013e610ba9565b606091505b5050905080610bed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be4906128df565b60405180910390fd5b505b5050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610c5d82610c14565b810181811067ffffffffffffffff82111715610c7c57610c7b610c25565b5b80604052505050565b6000610c8f610bfb565b9050610c9b8282610c54565b919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cd082610ca5565b9050919050565b610ce081610cc5565b8114610ceb57600080fd5b50565b600081359050610cfd81610cd7565b92915050565b6000819050919050565b610d1681610d03565b8114610d2157600080fd5b50565b600081359050610d3381610d0d565b92915050565b6000610d4482610ca5565b9050919050565b610d5481610d39565b8114610d5f57600080fd5b50565b600081359050610d7181610d4b565b92915050565b600080fd5b600067ffffffffffffffff821115610d9757610d96610c25565b5b602082029050602081019050919050565b600080fd5b600067ffffffffffffffff821115610dc857610dc7610c25565b5b602082029050602081019050919050565b600067ffffffffffffffff821115610df457610df3610c25565b5b602082029050602081019050919050565b600067ffffffffffffffff821115610e2057610e1f610c25565b5b602082029050602081019050919050565b600080fd5b600067ffffffffffffffff821115610e5157610e50610c25565b5b610e5a82610c14565b9050602081019050919050565b82818337600083830152505050565b6000610e89610e8484610e36565b610c85565b905082815260208101848484011115610ea557610ea4610e31565b5b610eb0848285610e67565b509392505050565b600082601f830112610ecd57610ecc610d77565b5b8135610edd848260208601610e76565b91505092915050565b600060a08284031215610efc57610efb610c0f565b5b610f0660a0610c85565b90506000610f1684828501610d24565b6000830152506020610f2a84828501610cee565b6020830152506040610f3e84828501610d24565b604083015250606082013567ffffffffffffffff811115610f6257610f61610ca0565b5b610f6e84828501610eb8565b6060830152506080610f8284828501610d24565b60808301525092915050565b6000610fa1610f9c84610e05565b610c85565b90508083825260208201905060208402830185811115610fc457610fc3610da8565b5b835b8181101561100b57803567ffffffffffffffff811115610fe957610fe8610d77565b5b808601610ff68982610ee6565b85526020850194505050602081019050610fc6565b5050509392505050565b600082601f83011261102a57611029610d77565b5b813561103a848260208601610f8e565b91505092915050565b60006080828403121561105957611058610c0f565b5b6110636080610c85565b9050600061107384828501610d62565b600083015250602061108784828501610d24565b602083015250604061109b84828501610d24565b604083015250606082013567ffffffffffffffff8111156110bf576110be610ca0565b5b6110cb84828501611015565b60608301525092915050565b60006110ea6110e584610dd9565b610c85565b9050808382526020820190506020840283018581111561110d5761110c610da8565b5b835b8181101561115457803567ffffffffffffffff81111561113257611131610d77565b5b80860161113f8982611043565b8552602085019450505060208101905061110f565b5050509392505050565b600082601f83011261117357611172610d77565b5b81356111838482602086016110d7565b91505092915050565b6000606082840312156111a2576111a1610c0f565b5b6111ac6060610c85565b905060006111bc84828501610cee565b60008301525060206111d084828501610d24565b602083015250604082013567ffffffffffffffff8111156111f4576111f3610ca0565b5b6112008482850161115e565b60408301525092915050565b600061121f61121a84610dad565b610c85565b9050808382526020820190506020840283018581111561124257611241610da8565b5b835b8181101561128957803567ffffffffffffffff81111561126757611266610d77565b5b808601611274898261118c565b85526020850194505050602081019050611244565b5050509392505050565b600082601f8301126112a8576112a7610d77565b5b81356112b884826020860161120c565b91505092915050565b6000604082840312156112d7576112d6610c0f565b5b6112e16040610c85565b905060006112f184828501610d24565b600083015250602082013567ffffffffffffffff81111561131557611314610ca0565b5b61132184828501611293565b60208301525092915050565b600061134061133b84610d7c565b610c85565b9050808382526020820190506020840283018581111561136357611362610da8565b5b835b818110156113aa57803567ffffffffffffffff81111561138857611387610d77565b5b80860161139589826112c1565b85526020850194505050602081019050611365565b5050509392505050565b600082601f8301126113c9576113c8610d77565b5b81356113d984826020860161132d565b91505092915050565b60007fffffffffffffffffffffffffffffffff0000000000000000000000000000000082169050919050565b611417816113e2565b811461142257600080fd5b50565b6000813590506114348161140e565b92915050565b6000610160828403121561145157611450610c0f565b5b61145c610160610c85565b9050600061146c84828501610cee565b600083015250602061148084828501610d24565b602083015250604061149484828501610d24565b60408301525060606114a884828501610d24565b60608301525060806114bc84828501610d62565b60808301525060a082013567ffffffffffffffff8111156114e0576114df610ca0565b5b6114ec848285016113b4565b60a08301525060c061150084828501610d62565b60c08301525060e061151484828501610d24565b60e08301525061010082013567ffffffffffffffff81111561153957611538610ca0565b5b61154584828501610eb8565b6101008301525061012061155b84828501610d24565b6101208301525061014061157184828501611425565b6101408301525092915050565b60006020828403121561159457611593610c05565b5b600082013567ffffffffffffffff8111156115b2576115b1610c0a565b5b6115be8482850161143a565b91505092915050565b6115d081610d03565b82525050565b60006020820190506115eb60008301846115c7565b92915050565b600067ffffffffffffffff82111561160c5761160b610c25565b5b602082029050602081019050919050565b600061163061162b846115f1565b610c85565b9050808382526020820190506020840283018581111561165357611652610da8565b5b835b8181101561167c57806116688882610cee565b845260208401935050602081019050611655565b5050509392505050565b600082601f83011261169b5761169a610d77565b5b81356116ab84826020860161161d565b91505092915050565b600067ffffffffffffffff8211156116cf576116ce610c25565b5b602082029050602081019050919050565b60006116f36116ee846116b4565b610c85565b9050808382526020820190506020840283018581111561171657611715610da8565b5b835b8181101561173f578061172b8882610d24565b845260208401935050602081019050611718565b5050509392505050565b600082601f83011261175e5761175d610d77565b5b813561176e8482602086016116e0565b91505092915050565b60006101e0828403121561178e5761178d610c0f565b5b6117996101e0610c85565b905060006117a984828501610cee565b60008301525060206117bd84828501610cee565b60208301525060406117d184828501610d24565b60408301525060606117e584828501610d24565b60608301525060806117f984828501610d24565b60808301525060a082013567ffffffffffffffff81111561181d5761181c610ca0565b5b61182984828501611686565b60a08301525060c082013567ffffffffffffffff81111561184d5761184c610ca0565b5b61185984828501610eb8565b60c08301525060e082013567ffffffffffffffff81111561187d5761187c610ca0565b5b61188984828501611749565b60e08301525061010082013567ffffffffffffffff8111156118ae576118ad610ca0565b5b6118ba84828501611749565b610100830152506101206118d084828501610d62565b610120830152506101406118e684828501610d62565b610140830152506101606118fc84828501610d24565b6101608301525061018082013567ffffffffffffffff81111561192257611921610ca0565b5b61192e84828501610eb8565b610180830152506101a061194484828501610d24565b6101a0830152506101c061195a84828501611425565b6101c08301525092915050565b60006020828403121561197d5761197c610c05565b5b600082013567ffffffffffffffff81111561199b5761199a610c0a565b5b6119a784828501611777565b91505092915050565b6000819050919050565b60006119d56119d06119cb84610ca5565b6119b0565b610ca5565b9050919050565b60006119e7826119ba565b9050919050565b60006119f9826119dc565b9050919050565b611a09816119ee565b82525050565b6000602082019050611a246000830184611a00565b92915050565b600060208284031215611a4057611a3f610c05565b5b6000611a4e84828501610d24565b91505092915050565b611a6081610cc5565b82525050565b6000602082019050611a7b6000830184611a57565b92915050565b60008060408385031215611a9857611a97610c05565b5b6000611aa685828601610cee565b9250506020611ab785828601610d24565b9150509250929050565b60006101608284031215611ad857611ad7610c0f565b5b611ae3610160610c85565b90506000611af384828501610cee565b6000830152506020611b0784828501610d24565b6020830152506040611b1b84828501610d24565b6040830152506060611b2f84828501610d24565b6060830152506080611b4384828501610d62565b60808301525060a082013567ffffffffffffffff811115611b6757611b66610ca0565b5b611b7384828501611293565b60a08301525060c0611b8784828501610d62565b60c08301525060e0611b9b84828501610d24565b60e08301525061010082013567ffffffffffffffff811115611bc057611bbf610ca0565b5b611bcc84828501610eb8565b61010083015250610120611be284828501610d24565b61012083015250610140611bf884828501611425565b6101408301525092915050565b600060208284031215611c1b57611c1a610c05565b5b600082013567ffffffffffffffff811115611c3957611c38610c0a565b5b611c4584828501611ac1565b91505092915050565b600060208284031215611c6457611c63610c05565b5b6000611c7284828501610cee565b91505092915050565b611c8481610cc5565b82525050565b611c9381610d03565b82525050565b611ca281610d39565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d92578082015181840152602081019050611d77565b60008484015250505050565b6000611da982611d58565b611db38185611d63565b9350611dc3818560208601611d74565b611dcc81610c14565b840191505092915050565b600060a083016000830151611def6000860182611c8a565b506020830151611e026020860182611c7b565b506040830151611e156040860182611c8a565b5060608301518482036060860152611e2d8282611d9e565b9150506080830151611e426080860182611c8a565b508091505092915050565b6000611e598383611dd7565b905092915050565b6000602082019050919050565b6000611e7982611d2c565b611e838185611d37565b935083602082028501611e9585611d48565b8060005b85811015611ed15784840389528151611eb28582611e4d565b9450611ebd83611e61565b925060208a01995050600181019050611e99565b50829750879550505050505092915050565b6000608083016000830151611efb6000860182611c99565b506020830151611f0e6020860182611c8a565b506040830151611f216040860182611c8a565b5060608301518482036060860152611f398282611e6e565b9150508091505092915050565b6000611f528383611ee3565b905092915050565b6000602082019050919050565b6000611f7282611d00565b611f7c8185611d0b565b935083602082028501611f8e85611d1c565b8060005b85811015611fca5784840389528151611fab8582611f46565b9450611fb683611f5a565b925060208a01995050600181019050611f92565b50829750879550505050505092915050565b6000606083016000830151611ff46000860182611c7b565b5060208301516120076020860182611c8a565b506040830151848203604086015261201f8282611f67565b9150508091505092915050565b60006120388383611fdc565b905092915050565b6000602082019050919050565b600061205882611cd4565b6120628185611cdf565b93508360208202850161207485611cf0565b8060005b858110156120b05784840389528151612091858261202c565b945061209c83612040565b925060208a01995050600181019050612078565b50829750879550505050505092915050565b60006040830160008301516120da6000860182611c8a565b50602083015184820360208601526120f2828261204d565b9150508091505092915050565b600061210b83836120c2565b905092915050565b6000602082019050919050565b600061212b82611ca8565b6121358185611cb3565b93508360208202850161214785611cc4565b8060005b85811015612183578484038952815161216485826120ff565b945061216f83612113565b925060208a0199505060018101905061214b565b50829750879550505050505092915050565b61219e816113e2565b82525050565b6000610160830160008301516121bd6000860182611c7b565b5060208301516121d06020860182611c8a565b5060408301516121e36040860182611c8a565b5060608301516121f66060860182611c8a565b5060808301516122096080860182611c99565b5060a083015184820360a08601526122218282612120565b91505060c083015161223660c0860182611c99565b5060e083015161224960e0860182611c8a565b506101008301518482036101008601526122638282611d9e565b91505061012083015161227a610120860182611c8a565b5061014083015161228f610140860182612195565b508091505092915050565b600060208201905081810360008301526122b481846121a4565b905092915050565b6000815190506122cb81610d0d565b92915050565b6000602082840312156122e7576122e6610c05565b5b60006122f5848285016122bc565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006123368383611c7b565b60208301905092915050565b6000602082019050919050565b600061235a826122fe565b6123648185612309565b935061236f8361231a565b8060005b838110156123a0578151612387888261232a565b975061239283612342565b925050600181019050612373565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006123e58383611c8a565b60208301905092915050565b6000602082019050919050565b6000612409826123ad565b61241381856123b8565b935061241e836123c9565b8060005b8381101561244f57815161243688826123d9565b9750612441836123f1565b925050600181019050612422565b5085935050505092915050565b60006101e0830160008301516124756000860182611c7b565b5060208301516124886020860182611c7b565b50604083015161249b6040860182611c8a565b5060608301516124ae6060860182611c8a565b5060808301516124c16080860182611c8a565b5060a083015184820360a08601526124d9828261234f565b91505060c083015184820360c08601526124f38282611d9e565b91505060e083015184820360e086015261250d82826123fe565b91505061010083015184820361010086015261252982826123fe565b915050610120830151612540610120860182611c99565b50610140830151612555610140860182611c99565b5061016083015161256a610160860182611c8a565b506101808301518482036101808601526125848282611d9e565b9150506101a083015161259b6101a0860182611c8a565b506101c08301516125b06101c0860182612195565b508091505092915050565b600060208201905081810360008301526125d5818461245c565b905092915050565b60006040820190506125f26000830185611a57565b6125ff60208301846115c7565b9392505050565b60008115159050919050565b61261b81612606565b811461262657600080fd5b50565b60008151905061263881612612565b92915050565b60006020828403121561265457612653610c05565b5b600061266284828501612629565b91505092915050565b6000610160830160008301516126846000860182611c7b565b5060208301516126976020860182611c8a565b5060408301516126aa6040860182611c8a565b5060608301516126bd6060860182611c8a565b5060808301516126d06080860182611c99565b5060a083015184820360a08601526126e8828261204d565b91505060c08301516126fd60c0860182611c99565b5060e083015161271060e0860182611c8a565b5061010083015184820361010086015261272a8282611d9e565b915050610120830151612741610120860182611c8a565b50610140830151612756610140860182612195565b508091505092915050565b6000602082019050818103600083015261277b818461266b565b905092915050565b60006060820190506127986000830186611a57565b6127a56020830185611a57565b6127b260408301846115c7565b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b6128016127fc826127ba565b6127e6565b82525050565b600081905092915050565b600061281d82611d58565b6128278185612807565b9350612837818560208601611d74565b80840191505092915050565b600061284f82856127f0565b60048201915061285f8284612812565b91508190509392505050565b60006128778284612812565b915081905092915050565b600082825260208201905092915050565b7f5065726d6974206661696c656400000000000000000000000000000000000000600082015250565b60006128c9600d83612882565b91506128d482612893565b602082019050919050565b600060208201905081810360008301526128f8816128bc565b905091905056fea2646970667358221220baf7f370a3e1ad17f4b2abdfc34676e2fe5098a08199e43f125b833cf0bb469664736f6c63430008140033

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

000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee57

-----Decoded View---------------
Arg [0] : _paraswap (address): 0xDEF171Fe48CF0115B1d80b88dc8eAB59176FEe57

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee57


Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.