ETH Price: $2,266.71 (+6.94%)
Gas: 0.2 Gwei

Contract

0x2A1DCA74419c2D304A3D359F428eE1A4e9324A90
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer244139262026-02-08 18:44:3535 days ago1770576275IN
0x2A1DCA74...4e9324A90
0 ETH0.000007770.16556049
Redeem244082422026-02-07 23:31:1136 days ago1770507071IN
0x2A1DCA74...4e9324A90
0 ETH0.000006260.08618616
Redeem244044322026-02-07 10:45:1136 days ago1770461111IN
0x2A1DCA74...4e9324A90
0 ETH0.000011150.1439
Approve244036782026-02-07 8:13:4737 days ago1770452027IN
0x2A1DCA74...4e9324A90
0 ETH0.00000450.18599842
Approve241433512026-01-02 0:26:1173 days ago1767313571IN
0x2A1DCA74...4e9324A90
0 ETH0.000002110.08736099
Transfer237268002025-11-04 15:18:23131 days ago1762269503IN
0x2A1DCA74...4e9324A90
0 ETH0.000094552.01509115
Approve236985432025-10-31 16:31:35135 days ago1761928295IN
0x2A1DCA74...4e9324A90
0 ETH0.000062982.59922544
Approve236333382025-10-22 13:23:11144 days ago1761139391IN
0x2A1DCA74...4e9324A90
0 ETH0.000029111.20133291
Transfer235636272025-10-12 19:07:23154 days ago1760296043IN
0x2A1DCA74...4e9324A90
0 ETH0.000038970.83078147
Approve235634952025-10-12 18:40:59154 days ago1760294459IN
0x2A1DCA74...4e9324A90
0 ETH0.000016330.67408776
Transfer235353352025-10-08 20:13:23158 days ago1759954403IN
0x2A1DCA74...4e9324A90
0 ETH0.000043060.91795612
Transfer234527302025-09-27 7:03:23170 days ago1758956603IN
0x2A1DCA74...4e9324A90
0 ETH0.000116512.25313328
Approve234520032025-09-27 4:36:59170 days ago1758947819IN
0x2A1DCA74...4e9324A90
0 ETH0.000024060.99321763
Transfer234415572025-09-25 17:31:11171 days ago1758821471IN
0x2A1DCA74...4e9324A90
0 ETH0.000299865.79860678
Transfer234415432025-09-25 17:28:23171 days ago1758821303IN
0x2A1DCA74...4e9324A90
0 ETH0.000322256.23158729
Approve233169292025-09-08 7:37:59189 days ago1757317079IN
0x2A1DCA74...4e9324A90
0 ETH0.000015420.63636752
Approve232348332025-08-27 20:26:23200 days ago1756326383IN
0x2A1DCA74...4e9324A90
0 ETH0.000087833.62464941
Approve232326642025-08-27 13:10:11200 days ago1756300211IN
0x2A1DCA74...4e9324A90
0 ETH0.000051322.11812977
Approve232156822025-08-25 4:19:11203 days ago1756095551IN
0x2A1DCA74...4e9324A90
0 ETH0.000027751.14558206
Approve231982272025-08-22 17:51:11205 days ago1755885071IN
0x2A1DCA74...4e9324A90
0 ETH0.000151336.24522921
Approve231304472025-08-13 6:50:35215 days ago1755067835IN
0x2A1DCA74...4e9324A90
0 ETH0.000019630.81019745
Approve231208012025-08-11 22:31:23216 days ago1754951483IN
0x2A1DCA74...4e9324A90
0 ETH0.000017930.74
Approve231081942025-08-10 4:12:35218 days ago1754799155IN
0x2A1DCA74...4e9324A90
0 ETH0.00001140.47078199
Approve230906272025-08-07 17:18:47220 days ago1754587127IN
0x2A1DCA74...4e9324A90
0 ETH0.000027951.15372763
Approve230211562025-07-29 0:16:35230 days ago1753748195IN
0x2A1DCA74...4e9324A90
0 ETH0.00003281.35395898
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Banana

Compiler Version
v0.8.2+commit.661d1103

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity ^0.8.0;

import "./interfaces/IBanana.sol";
import "../utils/Ownable.sol";
import "../libraries/TransferHelper.sol";
import "../libraries/FullMath.sol";

contract Banana is IBanana, Ownable {
    using FullMath for uint256;

    string public constant override name = "Banana";
    string public constant override symbol = "BANA";
    uint8 public constant override decimals = 18;

    address public immutable override apeXToken;
    uint256 public override redeemTime;
    uint256 public override totalSupply;
    mapping(address => uint256) public override balanceOf;
    mapping(address => mapping(address => uint256)) public override allowance;

    mapping(address => bool) public minters;

    constructor(address apeXToken_, uint256 redeemTime_) {
        owner = msg.sender;
        apeXToken = apeXToken_;
        redeemTime = redeemTime_;
        minters[msg.sender] = true;
    }

    function updateRedeemTime(uint256 redeemTime_) external onlyOwner {
        require(redeemTime_ > block.timestamp, "need over current time");
        emit RedeemTimeChanged(redeemTime, redeemTime_);
        redeemTime = redeemTime_;
    }

    function addMinter(address minter) external onlyOwner {
        minters[minter] = true;
    }

    function removeMinter(address minter) external onlyOwner {
        minters[minter] = false;
    }

    function mint(address to, uint256 apeXAmount) external override returns (uint256) {
        require(minters[msg.sender], "forbidden");
        require(apeXAmount > 0, "zero amount");

        uint256 apeXBalance = IERC20(apeXToken).balanceOf(address(this));
        uint256 mintAmount;
        if (totalSupply == 0) {
            mintAmount = apeXAmount * 1000;
        } else {
            mintAmount = apeXAmount.mulDiv(totalSupply, apeXBalance);
        }

        TransferHelper.safeTransferFrom(apeXToken, msg.sender, address(this), apeXAmount);
        _mint(to, mintAmount);
        return mintAmount;
    }

    function burn(uint256 amount) external override returns (bool) {
        _burn(msg.sender, amount);
        return true;
    }

    function burnFrom(address from, uint256 amount) external override returns (bool) {
        _spendAllowance(from, msg.sender, amount);
        _burn(from, amount);
        return true;
    }

    function redeem(uint256 amount) external override returns (uint256) {
        require(block.timestamp >= redeemTime, "unredeemable");
        require(balanceOf[msg.sender] >= amount, "not enough balance");

        uint256 totalApeX = IERC20(apeXToken).balanceOf(address(this));
        uint256 apeXAmount = amount.mulDiv(totalApeX, totalSupply);

        _burn(msg.sender, amount);
        TransferHelper.safeTransfer(apeXToken, msg.sender, apeXAmount);

        emit Redeem(msg.sender, amount, apeXAmount);
        return apeXAmount;
    }

    function transfer(address to, uint256 value) external override returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external override returns (bool) {
        _spendAllowance(from, msg.sender, value);
        _transfer(from, to, value);
        return true;
    }

    function approve(address spender, uint256 value) external override returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    function _spendAllowance(
        address from,
        address spender,
        uint256 value
    ) internal virtual {
        uint256 currentAllowance = allowance[from][spender];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= value, "insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - value);
            }
        }
    }

    function _mint(address to, uint256 value) internal {
        require(to != address(0), "zero address");
        totalSupply = totalSupply + value;
        balanceOf[to] = balanceOf[to] + value;
        emit Transfer(address(0), to, value);
    }

    function _burn(address from, uint256 value) internal {
        require(balanceOf[from] >= value, "balance of from < value");
        balanceOf[from] = balanceOf[from] - value;
        totalSupply = totalSupply - value;
        emit Transfer(from, address(0), value);
    }

    function _approve(
        address _owner,
        address spender,
        uint256 value
    ) private {
        allowance[_owner][spender] = value;
        emit Approval(_owner, spender, value);
    }

    function _transfer(
        address from,
        address to,
        uint256 value
    ) private {
        require(to != address(0), "can not tranfer to zero address");
        uint256 fromBalance = balanceOf[from];
        require(fromBalance >= value, "transfer amount exceeds balance");
        balanceOf[from] = fromBalance - value;
        balanceOf[to] = balanceOf[to] + value;
        emit Transfer(from, to, value);
    }
}

// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity ^0.8.0;

import "../../interfaces/IERC20.sol";

interface IBanana is IERC20 {
    event RedeemTimeChanged(uint256 oldRedeemTime, uint256 newRedeemTime);
    event Redeem(address indexed user, uint256 burntAmount, uint256 apeXAmount);

    function apeXToken() external view returns (address);
    function redeemTime() external view returns (uint256);

    function mint(address to, uint256 apeXAmount) external returns (uint256);
    function burn(uint256 amount) external returns (bool);
    function burnFrom(address from, uint256 amount) external returns (bool);
    function redeem(uint256 amount) external returns (uint256);
}

// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity ^0.8.0;

abstract contract Ownable {
    address public owner;
    address public pendingOwner;

    event NewOwner(address indexed oldOwner, address indexed newOwner);
    event NewPendingOwner(address indexed oldPendingOwner, address indexed newPendingOwner);

    modifier onlyOwner() {
        require(msg.sender == owner, "Ownable: REQUIRE_OWNER");
        _;
    }

    function setPendingOwner(address newPendingOwner) external onlyOwner {
        require(pendingOwner != newPendingOwner, "Ownable: ALREADY_SET");
        emit NewPendingOwner(pendingOwner, newPendingOwner);
        pendingOwner = newPendingOwner;
    }

    function acceptOwner() external {
        require(msg.sender == pendingOwner, "Ownable: REQUIRE_PENDING_OWNER");
        address oldOwner = owner;
        address oldPendingOwner = pendingOwner;
        owner = pendingOwner;
        pendingOwner = address(0);
        emit NewOwner(oldOwner, owner);
        emit NewPendingOwner(oldPendingOwner, pendingOwner);
    }
}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false
library TransferHelper {
    function safeApprove(
        address token,
        address to,
        uint256 value
    ) internal {
        // bytes4(keccak256(bytes('approve(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
        require(
            success && (data.length == 0 || abi.decode(data, (bool))),
            "TransferHelper::safeApprove: approve failed"
        );
    }

    function safeTransfer(
        address token,
        address to,
        uint256 value
    ) internal {
        // bytes4(keccak256(bytes('transfer(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
        require(
            success && (data.length == 0 || abi.decode(data, (bool))),
            "TransferHelper::safeTransfer: transfer failed"
        );
    }

    function safeTransferFrom(
        address token,
        address from,
        address to,
        uint256 value
    ) internal {
        // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
        require(
            success && (data.length == 0 || abi.decode(data, (bool))),
            "TransferHelper::transferFrom: transferFrom failed"
        );
    }

    function safeTransferETH(address to, uint256 value) internal {
        (bool success, ) = to.call{value: value}(new bytes(0));
        require(success, "TransferHelper::safeTransferETH: ETH transfer failed");
    }
}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/// @title Contains 512-bit math functions
/// @notice Facilitates multiplication and division that can have overflow of an intermediate value without any loss of precision
/// @dev Handles "phantom overflow" i.e., allows multiplication and division where an intermediate value overflows 256 bits
library FullMath {
    /// @notice Calculates floor(a×b÷denominator) with full precision. Throws if result overflows a uint256 or denominator == 0
    /// @param a The multiplicand
    /// @param b The multiplier
    /// @param denominator The divisor
    /// @return result The 256-bit result
    /// @dev Credit to Remco Bloemen under MIT license https://xn--2-umb.com/21/muldiv
    function mulDiv(
        uint256 a,
        uint256 b,
        uint256 denominator
    ) internal pure returns (uint256 result) {
        // 512-bit multiply [prod1 prod0] = a * b
        // Compute the product mod 2**256 and mod 2**256 - 1
        // then use the Chinese Remainder Theorem to reconstruct
        // the 512 bit result. The result is stored in two 256
        // variables such that product = prod1 * 2**256 + prod0
        uint256 prod0; // Least significant 256 bits of the product
        uint256 prod1; // Most significant 256 bits of the product

        // todo unchecked
        unchecked {
            assembly {
                let mm := mulmod(a, b, not(0))
                prod0 := mul(a, b)
                prod1 := sub(sub(mm, prod0), lt(mm, prod0))
            }

            // Handle non-overflow cases, 256 by 256 division
            if (prod1 == 0) {
                require(denominator > 0);
                assembly {
                    result := div(prod0, denominator)
                }
                return result;
            }

            // Make sure the result is less than 2**256.
            // Also prevents denominator == 0
            require(denominator > prod1);

            ///////////////////////////////////////////////
            // 512 by 256 division.
            ///////////////////////////////////////////////

            // Make division exact by subtracting the remainder from [prod1 prod0]
            // Compute remainder using mulmod
            uint256 remainder;
            assembly {
                remainder := mulmod(a, b, denominator)
            }
            // Subtract 256 bit number from 512 bit number
            assembly {
                prod1 := sub(prod1, gt(remainder, prod0))
                prod0 := sub(prod0, remainder)
            }

            // Factor powers of two out of denominator
            // Compute largest power of two divisor of denominator.
            // Always >= 1.
            uint256 twos = (~denominator + 1) & denominator;
            // Divide denominator by power of two
            assembly {
                denominator := div(denominator, twos)
            }

            // Divide [prod1 prod0] by the factors of two
            assembly {
                prod0 := div(prod0, twos)
            }
            // Shift in bits from prod1 into prod0. For this we need
            // to flip `twos` such that it is 2**256 / twos.
            // If twos is zero, then it becomes one
            assembly {
                twos := add(div(sub(0, twos), twos), 1)
            }

            prod0 |= prod1 * twos;

            // Invert denominator mod 2**256
            // Now that denominator is an odd number, it has an inverse
            // modulo 2**256 such that denominator * inv = 1 mod 2**256.
            // Compute the inverse by starting with a seed that is correct
            // correct for four bits. That is, denominator * inv = 1 mod 2**4
            uint256 inv = (3 * denominator) ^ 2;
            // Now use Newton-Raphson iteration to improve the precision.
            // Thanks to Hensel's lifting lemma, this also works in modular
            // arithmetic, doubling the correct bits in each step.

            inv *= 2 - denominator * inv; // inverse mod 2**8
            inv *= 2 - denominator * inv; // inverse mod 2**16
            inv *= 2 - denominator * inv; // inverse mod 2**32
            inv *= 2 - denominator * inv; // inverse mod 2**64
            inv *= 2 - denominator * inv; // inverse mod 2**128
            inv *= 2 - denominator * inv; // inverse mod 2**256

            // Because the division is now exact we can divide by multiplying
            // with the modular inverse of denominator. This will give us the
            // correct result modulo 2**256. Since the precoditions guarantee
            // that the outcome is less than 2**256, this is the final result.
            // We don't need to compute the high bits of the result and prod1
            // is no longer required.
            result = prod0 * inv;
            return result;
        }
    }

    /// @notice Calculates ceil(a×b÷denominator) with full precision. Throws if result overflows a uint256 or denominator == 0
    /// @param a The multiplicand
    /// @param b The multiplier
    /// @param denominator The divisor
    /// @return result The 256-bit result
    function mulDivRoundingUp(
        uint256 a,
        uint256 b,
        uint256 denominator
    ) internal pure returns (uint256 result) {
        result = mulDiv(a, b, denominator);
        if (mulmod(a, b, denominator) > 0) {
            require(result < type(uint256).max);
            result++;
        }
    }
}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IERC20 {
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external pure returns (uint8);
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"apeXToken_","type":"address"},{"internalType":"uint256","name":"redeemTime_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldPendingOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newPendingOwner","type":"address"}],"name":"NewPendingOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"burntAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"apeXAmount","type":"uint256"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldRedeemTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newRedeemTime","type":"uint256"}],"name":"RedeemTimeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"acceptOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"minter","type":"address"}],"name":"addMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"apeXToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"apeXAmount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minters","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"redeemTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"minter","type":"address"}],"name":"removeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingOwner","type":"address"}],"name":"setPendingOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redeemTime_","type":"uint256"}],"name":"updateRedeemTime","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a060405234801561001057600080fd5b5060405161151b38038061151b83398101604081905261002f91610079565b60008054336001600160a01b03199091168117825560609390931b6001600160601b031916608052600291909155908152600660205260409020805460ff191660011790556100b1565b6000806040838503121561008b578182fd5b82516001600160a01b03811681146100a1578283fd5b6020939093015192949293505050565b60805160601c6114306100eb600039600081816102d1015281816104d6015281816105910152818161088e015261093c01526114306000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638da5cb5b116100c3578063c42069ec1161007c578063c42069ec14610319578063db006a751461032c578063dd62ed3e1461033f578063e30c39781461036a578063ebbc49651461037d578063f46eccc4146103855761014d565b80638da5cb5b1461026b57806395d89b4114610296578063983b2d56146102b95780639d67a4a3146102cc578063a83cd948146102f3578063a9059cbb146103065761014d565b80633092afd5116101155780633092afd5146101e3578063313ce567146101f857806340c10f191461021257806342966c681461022557806370a082311461023857806379cc6790146102585761014d565b806306fdde0314610152578063095ea7b31461018d57806318160ddd146101b057806323b872dd146101c75780632584c889146101da575b600080fd5b6101776040518060400160405280600681526020016542616e616e6160d01b81525081565b6040516101849190611307565b60405180910390f35b6101a061019b366004611272565b6103a8565b6040519015158152602001610184565b6101b960035481565b604051908152602001610184565b6101a06101d5366004611237565b6103be565b6101b960025481565b6101f66101f13660046111eb565b6103e1565b005b610200601281565b60405160ff9091168152602001610184565b6101b9610220366004611272565b610435565b6101a06102333660046112bb565b6105ca565b6101b96102463660046111eb565b60046020526000908152604090205481565b6101a0610266366004611272565b6105df565b60005461027e906001600160a01b031681565b6040516001600160a01b039091168152602001610184565b6101776040518060400160405280600481526020016342414e4160e01b81525081565b6101f66102c73660046111eb565b6105f6565b61027e7f000000000000000000000000000000000000000000000000000000000000000081565b6101f66103013660046112bb565b610644565b6101a0610314366004611272565b6106f7565b6101f66103273660046111eb565b610704565b6101b961033a3660046112bb565b6107df565b6101b961034d366004611205565b600560209081526000928352604080842090915290825290205481565b60015461027e906001600160a01b031681565b6101f66109a4565b6101a06103933660046111eb565b60066020526000908152604090205460ff1681565b60006103b5338484610a98565b50600192915050565b60006103cb843384610af9565b6103d6848484610b90565b5060015b9392505050565b6000546001600160a01b031633146104145760405162461bcd60e51b815260040161040b9061133a565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b3360009081526006602052604081205460ff166104805760405162461bcd60e51b81526020600482015260096024820152683337b93134b23232b760b91b604482015260640161040b565b600082116104be5760405162461bcd60e51b815260206004820152600b60248201526a1e995c9bc8185b5bdd5b9d60aa1b604482015260640161040b565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561052057600080fd5b505afa158015610534573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055891906112d3565b905060006003546000141561057a57610573846103e8611382565b905061058c565b60035461058990859084610ceb565b90505b6105b87f0000000000000000000000000000000000000000000000000000000000000000333087610d9a565b6105c28582610ed8565b949350505050565b60006105d63383610faf565b5060015b919050565b60006105ec833384610af9565b6103b58383610faf565b6000546001600160a01b031633146106205760405162461bcd60e51b815260040161040b9061133a565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6000546001600160a01b0316331461066e5760405162461bcd60e51b815260040161040b9061133a565b4281116106b65760405162461bcd60e51b81526020600482015260166024820152756e656564206f7665722063757272656e742074696d6560501b604482015260640161040b565b60025460408051918252602082018390527f254bd895d833f8d606c5389abbdcd8e784b1558dd277cbaf03f1b5e18b82934b910160405180910390a1600255565b60006103b5338484610b90565b6000546001600160a01b0316331461072e5760405162461bcd60e51b815260040161040b9061133a565b6001546001600160a01b03828116911614156107835760405162461bcd60e51b815260206004820152601460248201527313dddb98589b194e881053149150511657d4d15560621b604482015260640161040b565b6001546040516001600160a01b038084169216907fb3d55174552271a4f1aaf36b72f50381e892171636b3fb5447fe00e995e7a37b90600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006002544210156108225760405162461bcd60e51b815260206004820152600c60248201526b756e72656465656d61626c6560a01b604482015260640161040b565b336000908152600460205260409020548211156108765760405162461bcd60e51b81526020600482015260126024820152716e6f7420656e6f7567682062616c616e636560701b604482015260640161040b565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156108d857600080fd5b505afa1580156108ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091091906112d3565b9050600061092b8260035486610ceb9092919063ffffffff16565b90506109373385610faf565b6109627f000000000000000000000000000000000000000000000000000000000000000033836110a3565b604080518581526020810183905233917fe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a929910160405180910390a29392505050565b6001546001600160a01b031633146109fe5760405162461bcd60e51b815260206004820152601e60248201527f4f776e61626c653a20524551554952455f50454e44494e475f4f574e45520000604482015260640161040b565b60008054600180546001600160a01b038082166001600160a01b03198086168217808855931690935560405193811694929391169184917f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b23649190a36001546040516001600160a01b03918216918316907fb3d55174552271a4f1aaf36b72f50381e892171636b3fb5447fe00e995e7a37b90600090a35050565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038084166000908152600560209081526040808320938616835292905220546000198114610b8a5781811015610b715760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161040b565b600054610b8a906001600160a01b031684848403610a98565b50505050565b6001600160a01b038216610be65760405162461bcd60e51b815260206004820152601f60248201527f63616e206e6f74207472616e66657220746f207a65726f206164647265737300604482015260640161040b565b6001600160a01b03831660009081526004602052604090205481811015610c4f5760405162461bcd60e51b815260206004820152601f60248201527f7472616e7366657220616d6f756e7420657863656564732062616c616e636500604482015260640161040b565b610c5982826113a1565b6001600160a01b038086166000908152600460205260408082209390935590851681522054610c8990839061136a565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cdd9086815260200190565b60405180910390a350505050565b600080806000198587098587029250828110838203039150508060001415610d255760008411610d1a57600080fd5b5082900490506103da565b808411610d3157600080fd5b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691610dfe91906112eb565b6000604051808303816000865af19150503d8060008114610e3b576040519150601f19603f3d011682016040523d82523d6000602084013e610e40565b606091505b5091509150818015610e6a575080511580610e6a575080806020019051810190610e6a919061129b565b610ed05760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b606482015260840161040b565b505050505050565b6001600160a01b038216610f1d5760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b604482015260640161040b565b80600354610f2b919061136a565b6003556001600160a01b038216600090815260046020526040902054610f5290829061136a565b6001600160a01b0383166000818152600460205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fa39085815260200190565b60405180910390a35050565b6001600160a01b0382166000908152600460205260409020548111156110175760405162461bcd60e51b815260206004820152601760248201527f62616c616e6365206f662066726f6d203c2076616c7565000000000000000000604482015260640161040b565b6001600160a01b03821660009081526004602052604090205461103b9082906113a1565b6001600160a01b0383166000908152600460205260409020556003546110629082906113a1565b6003556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610fa3565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916110ff91906112eb565b6000604051808303816000865af19150503d806000811461113c576040519150601f19603f3d011682016040523d82523d6000602084013e611141565b606091505b509150915081801561116b57508051158061116b57508080602001905181019061116b919061129b565b6111cd5760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b606482015260840161040b565b5050505050565b80356001600160a01b03811681146105da57600080fd5b6000602082840312156111fc578081fd5b6103da826111d4565b60008060408385031215611217578081fd5b611220836111d4565b915061122e602084016111d4565b90509250929050565b60008060006060848603121561124b578081fd5b611254846111d4565b9250611262602085016111d4565b9150604084013590509250925092565b60008060408385031215611284578182fd5b61128d836111d4565b946020939093013593505050565b6000602082840312156112ac578081fd5b815180151581146103da578182fd5b6000602082840312156112cc578081fd5b5035919050565b6000602082840312156112e4578081fd5b5051919050565b600082516112fd8184602087016113b8565b9190910192915050565b60006020825282518060208401526113268160408501602087016113b8565b601f01601f19169190910160400192915050565b60208082526016908201527527bbb730b136329d102922a8aaa4a922afa7aba722a960511b604082015260600190565b6000821982111561137d5761137d6113e4565b500190565b600081600019048311821515161561139c5761139c6113e4565b500290565b6000828210156113b3576113b36113e4565b500390565b60005b838110156113d35781810151838201526020016113bb565b83811115610b8a5750506000910152565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220a971167f1ea5c47b26e96f197c7494a1bcc21de8e8fb10c8048b1180a3f1cee964736f6c6343000802003300000000000000000000000052a8845df664d76c69d2eea607cd793565af42b800000000000000000000000000000000000000000000000000000000655f0680

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80638da5cb5b116100c3578063c42069ec1161007c578063c42069ec14610319578063db006a751461032c578063dd62ed3e1461033f578063e30c39781461036a578063ebbc49651461037d578063f46eccc4146103855761014d565b80638da5cb5b1461026b57806395d89b4114610296578063983b2d56146102b95780639d67a4a3146102cc578063a83cd948146102f3578063a9059cbb146103065761014d565b80633092afd5116101155780633092afd5146101e3578063313ce567146101f857806340c10f191461021257806342966c681461022557806370a082311461023857806379cc6790146102585761014d565b806306fdde0314610152578063095ea7b31461018d57806318160ddd146101b057806323b872dd146101c75780632584c889146101da575b600080fd5b6101776040518060400160405280600681526020016542616e616e6160d01b81525081565b6040516101849190611307565b60405180910390f35b6101a061019b366004611272565b6103a8565b6040519015158152602001610184565b6101b960035481565b604051908152602001610184565b6101a06101d5366004611237565b6103be565b6101b960025481565b6101f66101f13660046111eb565b6103e1565b005b610200601281565b60405160ff9091168152602001610184565b6101b9610220366004611272565b610435565b6101a06102333660046112bb565b6105ca565b6101b96102463660046111eb565b60046020526000908152604090205481565b6101a0610266366004611272565b6105df565b60005461027e906001600160a01b031681565b6040516001600160a01b039091168152602001610184565b6101776040518060400160405280600481526020016342414e4160e01b81525081565b6101f66102c73660046111eb565b6105f6565b61027e7f00000000000000000000000052a8845df664d76c69d2eea607cd793565af42b881565b6101f66103013660046112bb565b610644565b6101a0610314366004611272565b6106f7565b6101f66103273660046111eb565b610704565b6101b961033a3660046112bb565b6107df565b6101b961034d366004611205565b600560209081526000928352604080842090915290825290205481565b60015461027e906001600160a01b031681565b6101f66109a4565b6101a06103933660046111eb565b60066020526000908152604090205460ff1681565b60006103b5338484610a98565b50600192915050565b60006103cb843384610af9565b6103d6848484610b90565b5060015b9392505050565b6000546001600160a01b031633146104145760405162461bcd60e51b815260040161040b9061133a565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b3360009081526006602052604081205460ff166104805760405162461bcd60e51b81526020600482015260096024820152683337b93134b23232b760b91b604482015260640161040b565b600082116104be5760405162461bcd60e51b815260206004820152600b60248201526a1e995c9bc8185b5bdd5b9d60aa1b604482015260640161040b565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000052a8845df664d76c69d2eea607cd793565af42b86001600160a01b0316906370a082319060240160206040518083038186803b15801561052057600080fd5b505afa158015610534573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055891906112d3565b905060006003546000141561057a57610573846103e8611382565b905061058c565b60035461058990859084610ceb565b90505b6105b87f00000000000000000000000052a8845df664d76c69d2eea607cd793565af42b8333087610d9a565b6105c28582610ed8565b949350505050565b60006105d63383610faf565b5060015b919050565b60006105ec833384610af9565b6103b58383610faf565b6000546001600160a01b031633146106205760405162461bcd60e51b815260040161040b9061133a565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6000546001600160a01b0316331461066e5760405162461bcd60e51b815260040161040b9061133a565b4281116106b65760405162461bcd60e51b81526020600482015260166024820152756e656564206f7665722063757272656e742074696d6560501b604482015260640161040b565b60025460408051918252602082018390527f254bd895d833f8d606c5389abbdcd8e784b1558dd277cbaf03f1b5e18b82934b910160405180910390a1600255565b60006103b5338484610b90565b6000546001600160a01b0316331461072e5760405162461bcd60e51b815260040161040b9061133a565b6001546001600160a01b03828116911614156107835760405162461bcd60e51b815260206004820152601460248201527313dddb98589b194e881053149150511657d4d15560621b604482015260640161040b565b6001546040516001600160a01b038084169216907fb3d55174552271a4f1aaf36b72f50381e892171636b3fb5447fe00e995e7a37b90600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006002544210156108225760405162461bcd60e51b815260206004820152600c60248201526b756e72656465656d61626c6560a01b604482015260640161040b565b336000908152600460205260409020548211156108765760405162461bcd60e51b81526020600482015260126024820152716e6f7420656e6f7567682062616c616e636560701b604482015260640161040b565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000052a8845df664d76c69d2eea607cd793565af42b86001600160a01b0316906370a082319060240160206040518083038186803b1580156108d857600080fd5b505afa1580156108ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091091906112d3565b9050600061092b8260035486610ceb9092919063ffffffff16565b90506109373385610faf565b6109627f00000000000000000000000052a8845df664d76c69d2eea607cd793565af42b833836110a3565b604080518581526020810183905233917fe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a929910160405180910390a29392505050565b6001546001600160a01b031633146109fe5760405162461bcd60e51b815260206004820152601e60248201527f4f776e61626c653a20524551554952455f50454e44494e475f4f574e45520000604482015260640161040b565b60008054600180546001600160a01b038082166001600160a01b03198086168217808855931690935560405193811694929391169184917f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b23649190a36001546040516001600160a01b03918216918316907fb3d55174552271a4f1aaf36b72f50381e892171636b3fb5447fe00e995e7a37b90600090a35050565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038084166000908152600560209081526040808320938616835292905220546000198114610b8a5781811015610b715760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161040b565b600054610b8a906001600160a01b031684848403610a98565b50505050565b6001600160a01b038216610be65760405162461bcd60e51b815260206004820152601f60248201527f63616e206e6f74207472616e66657220746f207a65726f206164647265737300604482015260640161040b565b6001600160a01b03831660009081526004602052604090205481811015610c4f5760405162461bcd60e51b815260206004820152601f60248201527f7472616e7366657220616d6f756e7420657863656564732062616c616e636500604482015260640161040b565b610c5982826113a1565b6001600160a01b038086166000908152600460205260408082209390935590851681522054610c8990839061136a565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cdd9086815260200190565b60405180910390a350505050565b600080806000198587098587029250828110838203039150508060001415610d255760008411610d1a57600080fd5b5082900490506103da565b808411610d3157600080fd5b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691610dfe91906112eb565b6000604051808303816000865af19150503d8060008114610e3b576040519150601f19603f3d011682016040523d82523d6000602084013e610e40565b606091505b5091509150818015610e6a575080511580610e6a575080806020019051810190610e6a919061129b565b610ed05760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b606482015260840161040b565b505050505050565b6001600160a01b038216610f1d5760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b604482015260640161040b565b80600354610f2b919061136a565b6003556001600160a01b038216600090815260046020526040902054610f5290829061136a565b6001600160a01b0383166000818152600460205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fa39085815260200190565b60405180910390a35050565b6001600160a01b0382166000908152600460205260409020548111156110175760405162461bcd60e51b815260206004820152601760248201527f62616c616e6365206f662066726f6d203c2076616c7565000000000000000000604482015260640161040b565b6001600160a01b03821660009081526004602052604090205461103b9082906113a1565b6001600160a01b0383166000908152600460205260409020556003546110629082906113a1565b6003556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610fa3565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916110ff91906112eb565b6000604051808303816000865af19150503d806000811461113c576040519150601f19603f3d011682016040523d82523d6000602084013e611141565b606091505b509150915081801561116b57508051158061116b57508080602001905181019061116b919061129b565b6111cd5760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b606482015260840161040b565b5050505050565b80356001600160a01b03811681146105da57600080fd5b6000602082840312156111fc578081fd5b6103da826111d4565b60008060408385031215611217578081fd5b611220836111d4565b915061122e602084016111d4565b90509250929050565b60008060006060848603121561124b578081fd5b611254846111d4565b9250611262602085016111d4565b9150604084013590509250925092565b60008060408385031215611284578182fd5b61128d836111d4565b946020939093013593505050565b6000602082840312156112ac578081fd5b815180151581146103da578182fd5b6000602082840312156112cc578081fd5b5035919050565b6000602082840312156112e4578081fd5b5051919050565b600082516112fd8184602087016113b8565b9190910192915050565b60006020825282518060208401526113268160408501602087016113b8565b601f01601f19169190910160400192915050565b60208082526016908201527527bbb730b136329d102922a8aaa4a922afa7aba722a960511b604082015260600190565b6000821982111561137d5761137d6113e4565b500190565b600081600019048311821515161561139c5761139c6113e4565b500290565b6000828210156113b3576113b36113e4565b500390565b60005b838110156113d35781810151838201526020016113bb565b83811115610b8a5750506000910152565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220a971167f1ea5c47b26e96f197c7494a1bcc21de8e8fb10c8048b1180a3f1cee964736f6c63430008020033

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

00000000000000000000000052a8845df664d76c69d2eea607cd793565af42b800000000000000000000000000000000000000000000000000000000655f0680

-----Decoded View---------------
Arg [0] : apeXToken_ (address): 0x52A8845DF664D76C69d2EEa607CD793565aF42B8
Arg [1] : redeemTime_ (uint256): 1700726400

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000052a8845df664d76c69d2eea607cd793565af42b8
Arg [1] : 00000000000000000000000000000000000000000000000000000000655f0680


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.