FTM Price: $0.583468 (+2.02%)
Gas: 5 GWei
 

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Value
Simple Swap835253972024-06-23 4:39:162 hrs ago1719117556IN
0x41d59d66...b7bb18f28
0 FTM0.00223156
Multi Swap835189342024-06-23 2:12:595 hrs ago1719108779IN
0x41d59d66...b7bb18f28
0 FTM0.00310915.13657774
Simple Swap834989302024-06-22 21:02:1210 hrs ago1719090132IN
0x41d59d66...b7bb18f28
200 FTM0.003229728
Simple Swap834928922024-06-22 19:13:0312 hrs ago1719083583IN
0x41d59d66...b7bb18f28
0 FTM0.003202317.64655073
Simple Swap834902962024-06-22 18:25:3712 hrs ago1719080737IN
0x41d59d66...b7bb18f28
2 FTM0.001669746.61788461
Simple Swap834897122024-06-22 18:14:2413 hrs ago1719080064IN
0x41d59d66...b7bb18f28
85 FTM0.0066909423.6084484
Simple Swap834896142024-06-22 18:12:3713 hrs ago1719079957IN
0x41d59d66...b7bb18f28
0 FTM0.002993286.19249265
Mega Swap834893382024-06-22 18:06:5913 hrs ago1719079619IN
0x41d59d66...b7bb18f28
4,440 FTM0.009711786.93946594
Multi Swap834892972024-06-22 18:06:1913 hrs ago1719079579IN
0x41d59d66...b7bb18f28
0 FTM0.005417976.43946594
Multi Swap834891852024-06-22 18:04:2013 hrs ago1719079460IN
0x41d59d66...b7bb18f28
0 FTM0.005203996.43946594
Mega Swap834691482024-06-22 11:38:0019 hrs ago1719056280IN
0x41d59d66...b7bb18f28
0 FTM0.00486287.15505972
Mega Swap834624552024-06-22 9:38:1821 hrs ago1719049098IN
0x41d59d66...b7bb18f28
0 FTM0.004303476.59934027
Simple Swap834623062024-06-22 9:34:5521 hrs ago1719048895IN
0x41d59d66...b7bb18f28
0 FTM0.001431646.59934027
Simple Swap834602942024-06-22 8:52:1922 hrs ago1719046339IN
0x41d59d66...b7bb18f28
0 FTM0.004572026.49201186
Simple Swap834437622024-06-22 3:05:0328 hrs ago1719025503IN
0x41d59d66...b7bb18f28
0 FTM0.002176379.27194076
Simple Swap834435252024-06-22 2:58:2628 hrs ago1719025106IN
0x41d59d66...b7bb18f28
0 FTM0.003776079.27194076
Multi Swap834402542024-06-22 1:41:4729 hrs ago1719020507IN
0x41d59d66...b7bb18f28
0 FTM0.0081846212
Simple Swap834401492024-06-22 1:39:5329 hrs ago1719020393IN
0x41d59d66...b7bb18f28
0 FTM0.0026959311.70780977
Simple Swap834313682024-06-21 22:30:0932 hrs ago1719009009IN
0x41d59d66...b7bb18f28
0 FTM0.0022763117
Simple Swap834313152024-06-21 22:29:0132 hrs ago1719008941IN
0x41d59d66...b7bb18f28
0 FTM0.0022763117
Simple Swap834295462024-06-21 21:46:5033 hrs ago1719006410IN
0x41d59d66...b7bb18f28
0 FTM0.005686620
Mega Swap834247482024-06-21 20:04:4635 hrs ago1719000286IN
0x41d59d66...b7bb18f28
0 FTM0.0280617818.56629519
Simple Swap834245692024-06-21 20:00:3735 hrs ago1719000037IN
0x41d59d66...b7bb18f28
0 FTM0.0046989818.56629519
Mega Swap834219722024-06-21 19:07:4336 hrs ago1718996863IN
0x41d59d66...b7bb18f28
0 FTM0.0331813919
Simple Swap834171822024-06-21 17:32:0937 hrs ago1718991129IN
0x41d59d66...b7bb18f28
2,290.96571616 FTM0.0078505718
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To Value
834989302024-06-22 21:02:1210 hrs ago1719090132
0x41d59d66...b7bb18f28
200 FTM
834902962024-06-22 18:25:3712 hrs ago1719080737
0x41d59d66...b7bb18f28
2 FTM
834897122024-06-22 18:14:2413 hrs ago1719080064
0x41d59d66...b7bb18f28
85 FTM
834893382024-06-22 18:06:5913 hrs ago1719079619
0x41d59d66...b7bb18f28
4,440 FTM
834891852024-06-22 18:04:2013 hrs ago1719079460
0x41d59d66...b7bb18f28
1 wei
834691482024-06-22 11:38:0019 hrs ago1719056280
0x41d59d66...b7bb18f28
1 wei
834171822024-06-21 17:32:0937 hrs ago1718991129
0x41d59d66...b7bb18f28
2,290.96571616 FTM
834112462024-06-21 15:31:0539 hrs ago1718983865
0x41d59d66...b7bb18f28
2 wei
833293192024-06-20 17:40:502 days ago1718905250
0x41d59d66...b7bb18f28
58 FTM
833248502024-06-20 16:38:282 days ago1718901508
0x41d59d66...b7bb18f28
1 wei
833194792024-06-20 15:23:332 days ago1718897013
0x41d59d66...b7bb18f28
10 FTM
833190322024-06-20 15:16:552 days ago1718896615
0x41d59d66...b7bb18f28
10 FTM
833130532024-06-20 13:52:202 days ago1718891540
0x41d59d66...b7bb18f28
15 FTM
833091522024-06-20 12:56:432 days ago1718888203
0x41d59d66...b7bb18f28
25.30241936 FTM
833050862024-06-20 11:56:392 days ago1718884599
0x41d59d66...b7bb18f28
22 FTM
832754342024-06-20 4:24:503 days ago1718857490
0x41d59d66...b7bb18f28
1,000 FTM
832363112024-06-19 19:54:543 days ago1718826894
0x41d59d66...b7bb18f28
60 FTM
832316582024-06-19 18:53:283 days ago1718823208
0x41d59d66...b7bb18f28
45 FTM
832295262024-06-19 18:25:363 days ago1718821536
0x41d59d66...b7bb18f28
20 FTM
832077362024-06-19 12:03:493 days ago1718798629
0x41d59d66...b7bb18f28
1 FTM
831958742024-06-19 8:45:313 days ago1718786731
0x41d59d66...b7bb18f28
170 FTM
831956452024-06-19 8:42:313 days ago1718786551
0x41d59d66...b7bb18f28
68 FTM
831947512024-06-19 8:30:483 days ago1718785848
0x41d59d66...b7bb18f28
66 FTM
831933572024-06-19 8:13:573 days ago1718784837
0x41d59d66...b7bb18f28
15 FTM
831929232024-06-19 8:08:163 days ago1718784496
0x41d59d66...b7bb18f28
87 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.