ETH Price: $3,376.04 (+3.20%)
Gas: 2 Gwei

Contract

0x715112622863a515368d488943d8540E3D325Be7
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw199261782024-05-22 15:01:1167 days ago1716390071IN
0x71511262...E3D325Be7
0 ETH0.0014779518.01329224
Donate Aura198365132024-05-10 1:58:5980 days ago1715306339IN
0x71511262...E3D325Be7
0 ETH0.000225934.12344066
Donate Aura198365052024-05-10 1:57:1180 days ago1715306231IN
0x71511262...E3D325Be7
0 ETH0.000308474.28993998
Donate Aura198364892024-05-10 1:53:4780 days ago1715306027IN
0x71511262...E3D325Be7
0 ETH0.000269373.74627775
Donate Aura198364752024-05-10 1:50:5980 days ago1715305859IN
0x71511262...E3D325Be7
0 ETH0.00029344.08036713
Donate Aura198364712024-05-10 1:50:1180 days ago1715305811IN
0x71511262...E3D325Be7
0 ETH0.00033024.59292613
Donate Aura198364572024-05-10 1:47:1180 days ago1715305631IN
0x71511262...E3D325Be7
0 ETH0.00025443.53800239
Transfer198362492024-05-10 1:05:3580 days ago1715303135IN
0x71511262...E3D325Be7
0.51 ETH0.00018763.48466435
Donate Aura198362142024-05-10 0:58:3580 days ago1715302715IN
0x71511262...E3D325Be7
0 ETH0.000295493.85352503
Transfer198361532024-05-10 0:46:2380 days ago1715301983IN
0x71511262...E3D325Be7
3 ETH0.000226333.19071234
Donate Aura198359372024-05-10 0:03:1180 days ago1715299391IN
0x71511262...E3D325Be7
0 ETH0.000207053.7780034
Donate Aura198342082024-05-09 18:14:2380 days ago1715278463IN
0x71511262...E3D325Be7
0 ETH0.000315164.38379786
Donate Aura198341782024-05-09 18:08:1180 days ago1715278091IN
0x71511262...E3D325Be7
0 ETH0.000395495.50111507
Transfer198335492024-05-09 16:01:3580 days ago1715270495IN
0x71511262...E3D325Be7
15 ETH0.000483218.97563412
Donate Aura198322402024-05-09 11:38:5981 days ago1715254739IN
0x71511262...E3D325Be7
0 ETH0.000229964.19592341
Donate Aura198313542024-05-09 8:40:5981 days ago1715244059IN
0x71511262...E3D325Be7
0 ETH0.000633168.80694255
Transfer198301012024-05-09 4:28:4781 days ago1715228927IN
0x71511262...E3D325Be7
0.0007 ETH0.000278553.92686599
Donate Aura198283392024-05-08 22:33:4781 days ago1715207627IN
0x71511262...E3D325Be7
0 ETH0.000288014.0054787
Donate Aura198270092024-05-08 18:04:4781 days ago1715191487IN
0x71511262...E3D325Be7
0 ETH0.000341134.74413659
Update Time198230482024-05-08 4:45:5982 days ago1715143559IN
0x71511262...E3D325Be7
0 ETH0.000125284.03030514
Donate Aura198228162024-05-08 3:59:1182 days ago1715140751IN
0x71511262...E3D325Be7
0 ETH0.000279143.88269814
Donate Aura198227482024-05-08 3:45:3582 days ago1715139935IN
0x71511262...E3D325Be7
0 ETH0.000291254.05116777
Donate Aura198223742024-05-08 2:30:3582 days ago1715135435IN
0x71511262...E3D325Be7
0 ETH0.000381245.30193656
Transfer198194512024-05-07 16:42:2382 days ago1715100143IN
0x71511262...E3D325Be7
0.01 ETH0.000519357.32148004
Transfer198116922024-05-06 14:39:1183 days ago1715006351IN
0x71511262...E3D325Be7
0.33 ETH0.000688039.69937298
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
198362492024-05-10 1:05:3580 days ago1715303135
0x71511262...E3D325Be7
0.51 ETH
198361532024-05-10 0:46:2380 days ago1715301983
0x71511262...E3D325Be7
3 ETH
198335492024-05-09 16:01:3580 days ago1715270495
0x71511262...E3D325Be7
15 ETH
198301012024-05-09 4:28:4781 days ago1715228927
0x71511262...E3D325Be7
0.0007 ETH
198194512024-05-07 16:42:2382 days ago1715100143
0x71511262...E3D325Be7
0.01 ETH
198116922024-05-06 14:39:1183 days ago1715006351
0x71511262...E3D325Be7
0.33 ETH
198114932024-05-06 13:58:5983 days ago1715003939
0x71511262...E3D325Be7
10 ETH
198106302024-05-06 11:05:2384 days ago1714993523
0x71511262...E3D325Be7
0.555 ETH
198084512024-05-06 3:45:5984 days ago1714967159
0x71511262...E3D325Be7
0.3 ETH
197790962024-05-02 1:15:1188 days ago1714612511
0x71511262...E3D325Be7
0.35 ETH
197618232024-04-29 15:21:1190 days ago1714404071
0x71511262...E3D325Be7
1 ETH
197403352024-04-26 15:11:2393 days ago1714144283
0x71511262...E3D325Be7
0.25 ETH
197344182024-04-25 19:17:5994 days ago1714072679
0x71511262...E3D325Be7
0.03 ETH
195842992024-04-04 18:52:11115 days ago1712256731
0x71511262...E3D325Be7
1.5 ETH
195653392024-04-02 3:08:11118 days ago1712027291
0x71511262...E3D325Be7
1.08 ETH
195594962024-04-01 7:26:23119 days ago1711956383
0x71511262...E3D325Be7
0.001 ETH
195553512024-03-31 17:28:35119 days ago1711906115
0x71511262...E3D325Be7
0.075 ETH
195534442024-03-31 11:00:47120 days ago1711882847
0x71511262...E3D325Be7
0.152 ETH
195514432024-03-31 4:15:47120 days ago1711858547
0x71511262...E3D325Be7
0.28 ETH
195397512024-03-29 12:46:47122 days ago1711716407
0x71511262...E3D325Be7
0.001 ETH
195395872024-03-29 12:13:47122 days ago1711714427
0x71511262...E3D325Be7
1.15 ETH
195338902024-03-28 16:55:35122 days ago1711644935
0x71511262...E3D325Be7
0.25 ETH
195330532024-03-28 13:58:35122 days ago1711634315
0x71511262...E3D325Be7
0.1475 ETH
195313342024-03-28 8:11:11123 days ago1711613471
0x71511262...E3D325Be7
0.65 ETH
195303112024-03-28 4:44:47123 days ago1711601087
0x71511262...E3D325Be7
0.6 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
IsekaiPortal

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 4 : IsekaiPortal.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.20;

/**
 * OpenZeppelin
 */
import {ReentrancyGuard} from "@openzeppelin/contracts/security/ReentrancyGuard.sol";
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";

interface CustomIERC20 {
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function deposit() external payable;

    function balanceOf(address account) external view returns (uint256);
}

/**
 * @title IsekaiPortal
 * @notice Isekai Bootstrapping event
 */
contract IsekaiPortal is Ownable, ReentrancyGuard {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /*                        STATE                               */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/

    /// @notice Isekai Bootstrap Event start time
    uint256 public startTime;

    /// @notice Isekai Bootstrap Event end time
    uint256 public endTime;

    /// @notice Aura token interface
    CustomIERC20 public immutable AURA_TOKEN; // On mainnet: = CustomIERC20(0xC0c293ce456fF0ED870ADd98a0828Dd4d2903DBF);

    /// @notice wETH token interface
    CustomIERC20 public immutable WETH_TOKEN; // On mainnet: = CustomIERC20(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);

    /// @notice User donated AURA and wETH token amounts
    struct UserDonation {
        uint256 auraAmount;
        uint256 wethAmount;
    }

    /// @notice UserDonation mapping
    mapping(address => UserDonation) public userBalances;

    /// @notice Total AURA donated
    uint256 public totalAuraDonated;

    /// @notice Total wETH donated
    uint256 public totalWethDonated;

    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /*                        EVENTS                              */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/

    event DonatedAura(address indexed user, address indexed to, uint256 amount);
    event DonatedEthereum(address indexed user, address indexed to, uint256 amount);

    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /*                        ERRORS                              */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/

    error EventNotStartedOrEnded();

    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /*                        MODIFIERS                           */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/

    modifier canDeposit() {
        if (block.timestamp < startTime || block.timestamp > endTime) revert EventNotStartedOrEnded();
        _;
    }

    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /*                        CONSTRUCTOR                         */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/

    constructor(uint256 _startTime, uint256 _endTime, address _auraToken, address _wethToken) {
        startTime = _startTime;
        endTime = _endTime;

        AURA_TOKEN = CustomIERC20(_auraToken);
        WETH_TOKEN = CustomIERC20(_wethToken);
    }

    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /*                        EXTERNAL Methods                    */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/

    /**
     * @notice donate AURA tokens
     * @param _amount amount of AURA to donate
     * @param _to address who is receiving final tokens
     */
    function donateAura(uint256 _amount, address _to, bytes calldata) external nonReentrant canDeposit {
        AURA_TOKEN.transferFrom(msg.sender, address(this), _amount);

        userBalances[_to].auraAmount += _amount;
        totalAuraDonated += _amount;

        emit DonatedAura(msg.sender, _to, _amount);
    }

    /**
     * @notice donate Ethereum
     * @param _amount amount of Ethereum to donate
     */
    function donateEth(uint256 _amount, address _to) external nonReentrant canDeposit {
        WETH_TOKEN.transferFrom(msg.sender, address(this), _amount);

        userBalances[_to].wethAmount += _amount;
        totalWethDonated += _amount;

        emit DonatedEthereum(msg.sender, _to, _amount);
    }

    /**
     * @notice donate Ethereum native
     */
    receive() external payable canDeposit {
        WETH_TOKEN.deposit{value: msg.value}();

        userBalances[msg.sender].wethAmount += msg.value;
        totalWethDonated += msg.value;

        emit DonatedEthereum(msg.sender, msg.sender, msg.value);
    }

    fallback() external payable canDeposit {
        WETH_TOKEN.deposit{value: msg.value}();

        userBalances[msg.sender].wethAmount += msg.value;
        totalWethDonated += msg.value;

        emit DonatedEthereum(msg.sender, msg.sender, msg.value);
    }

    /**
     * @notice returns amount of XP tokens a user is expected to receive
     */
    function userExpectedTokens(address _user, uint256 _auraXpAllocatedAmt, uint256 _wethXpAllocatedAmt)
        external
        view
        returns (uint256, uint256)
    {
        return (
            _auraXpAllocatedAmt * userBalances[_user].auraAmount / totalAuraDonated,
            _wethXpAllocatedAmt * userBalances[_user].wethAmount / totalWethDonated
        );
    }

    function withdraw(address _to) external onlyOwner {
        AURA_TOKEN.transfer(_to, AURA_TOKEN.balanceOf(address(this)));
        WETH_TOKEN.transfer(_to, WETH_TOKEN.balanceOf(address(this)));
    }

    function updateTime(uint256 _startTime, uint256 _endTime) external onlyOwner {
        startTime = _startTime;
        endTime = _endTime;
    }
}

File 2 of 4 : ReentrancyGuard.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        // On the first call to nonReentrant, _status will be _NOT_ENTERED
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;
    }

    function _nonReentrantAfter() private {
        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
     * `nonReentrant` function in the call stack.
     */
    function _reentrancyGuardEntered() internal view returns (bool) {
        return _status == _ENTERED;
    }
}

File 3 of 4 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../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.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @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 {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @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 {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _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 4 of 4 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with 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;
    }
}

Settings
{
  "remappings": [
    "forge-std/=lib/forge-std/src/",
    "@uniswap/v3-periphery/=lib/v3-periphery/",
    "@uniswap/v3-core/=lib/v3-core/",
    "@openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
    "@openzeppelin/=lib/openzeppelin-contracts/",
    "solmate/=lib/solmate/",
    "@prb/math/=lib/prb-math/src/",
    "@prb/test/=lib/prb-math/lib/prb-test/src/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/",
    "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/",
    "prb-math/=lib/prb-math/src/",
    "prb-test/=lib/prb-math/lib/prb-test/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"},{"internalType":"uint256","name":"_endTime","type":"uint256"},{"internalType":"address","name":"_auraToken","type":"address"},{"internalType":"address","name":"_wethToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"EventNotStartedOrEnded","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DonatedAura","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DonatedEthereum","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"AURA_TOKEN","outputs":[{"internalType":"contract CustomIERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH_TOKEN","outputs":[{"internalType":"contract CustomIERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"donateAura","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"donateEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAuraDonated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalWethDonated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"},{"internalType":"uint256","name":"_endTime","type":"uint256"}],"name":"updateTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userBalances","outputs":[{"internalType":"uint256","name":"auraAmount","type":"uint256"},{"internalType":"uint256","name":"wethAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_auraXpAllocatedAmt","type":"uint256"},{"internalType":"uint256","name":"_wethXpAllocatedAmt","type":"uint256"}],"name":"userExpectedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c060405234801561001057600080fd5b50604051610ece380380610ece83398101604081905261002f916100cb565b6100383361005f565b600180556002939093556003919091556001600160a01b039081166080521660a052610111565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146100c657600080fd5b919050565b600080600080608085870312156100e157600080fd5b84519350602085015192506100f8604086016100af565b9150610106606086016100af565b905092959194509250565b60805160a051610d756101596000396000818161012201528181610304015281816106fd015261094b0152600081816103ef015281816104c001526105fb0152610d756000f3fe6080604052600436106100ec5760003560e01c80636d18a2a01161008a578063d1e1a86711610059578063d1e1a867146103dd578063d45635bc14610411578063f2fde38b14610427578063f5f5d3361461044757610210565b80636d18a2a01461037e578063715018a61461039457806378e97925146103a95780638da5cb5b146103bf57610210565b80633197cbb6116100c65780633197cbb6146102ce57806337d277d4146102f257806351cff8d91461033e5780636884bbfb1461035e57610210565b8063147977761461023e57806321f1b6771461026057806326224c641461028057610210565b3661021057600254421080610102575060035442115b15610120576040516307ee9a4d60e51b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561017b57600080fd5b505af115801561018f573d6000803e3d6000fd5b505033600090815260046020526040812060010180543495509093509091506101b9908490610b6c565b9250508190555034600660008282546101d29190610b6c565b9091555050604051348152339081907f8500a5914d61ba37865142bf3e1314a9c53507471a6160359237bef87dd58a769060200160405180910390a3005b6002544210806101025750600354421115610120576040516307ee9a4d60e51b815260040160405180910390fd5b34801561024a57600080fd5b5061025e610259366004610ba1565b610467565b005b34801561026c57600080fd5b5061025e61027b366004610c28565b6105cb565b34801561028c57600080fd5b506102b461029b366004610c4a565b6004602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b3480156102da57600080fd5b506102e460035481565b6040519081526020016102c5565b3480156102fe57600080fd5b506103267f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102c5565b34801561034a57600080fd5b5061025e610359366004610c4a565b6105de565b34801561036a57600080fd5b506102b4610379366004610c6c565b6107ed565b34801561038a57600080fd5b506102e460065481565b3480156103a057600080fd5b5061025e610860565b3480156103b557600080fd5b506102e460025481565b3480156103cb57600080fd5b506000546001600160a01b0316610326565b3480156103e957600080fd5b506103267f000000000000000000000000000000000000000000000000000000000000000081565b34801561041d57600080fd5b506102e460055481565b34801561043357600080fd5b5061025e610442366004610c4a565b610874565b34801561045357600080fd5b5061025e610462366004610c9f565b6108f2565b61046f610a53565b600254421080610480575060035442115b1561049e576040516307ee9a4d60e51b815260040160405180910390fd5b6040516323b872dd60e01b8152336004820152306024820152604481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610511573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105359190610ccb565b506001600160a01b0383166000908152600460205260408120805486929061055e908490610b6c565b9250508190555083600560008282546105779190610b6c565b90915550506040518481526001600160a01b0384169033907fc136972e632bf56ed776728b028c865ac4ebf3a9e062ad345b141cab21ea6b539060200160405180910390a36105c560018055565b50505050565b6105d3610aac565b600291909155600355565b6105e6610aac565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb90839083906370a0823190602401602060405180830381865afa158015610654573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106789190610ced565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156106c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e79190610ccb565b506040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb90839083906370a0823190602401602060405180830381865afa158015610756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077a9190610ced565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156107c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e99190610ccb565b5050565b6005546001600160a01b038416600090815260046020526040812054909182916108179086610d06565b6108219190610d1d565b6006546001600160a01b03871660009081526004602052604090206001015461084a9086610d06565b6108549190610d1d565b91509150935093915050565b610868610aac565b6108726000610b06565b565b61087c610aac565b6001600160a01b0381166108e65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6108ef81610b06565b50565b6108fa610a53565b60025442108061090b575060035442115b15610929576040516307ee9a4d60e51b815260040160405180910390fd5b6040516323b872dd60e01b8152336004820152306024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303816000875af115801561099c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c09190610ccb565b506001600160a01b038116600090815260046020526040812060010180548492906109ec908490610b6c565b925050819055508160066000828254610a059190610b6c565b90915550506040518281526001600160a01b0382169033907f8500a5914d61ba37865142bf3e1314a9c53507471a6160359237bef87dd58a769060200160405180910390a36107e960018055565b600260015403610aa55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108dd565b6002600155565b6000546001600160a01b031633146108725760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610b7f57610b7f610b56565b92915050565b80356001600160a01b0381168114610b9c57600080fd5b919050565b60008060008060608587031215610bb757600080fd5b84359350610bc760208601610b85565b9250604085013567ffffffffffffffff80821115610be457600080fd5b818701915087601f830112610bf857600080fd5b813581811115610c0757600080fd5b886020828501011115610c1957600080fd5b95989497505060200194505050565b60008060408385031215610c3b57600080fd5b50508035926020909101359150565b600060208284031215610c5c57600080fd5b610c6582610b85565b9392505050565b600080600060608486031215610c8157600080fd5b610c8a84610b85565b95602085013595506040909401359392505050565b60008060408385031215610cb257600080fd5b82359150610cc260208401610b85565b90509250929050565b600060208284031215610cdd57600080fd5b81518015158114610c6557600080fd5b600060208284031215610cff57600080fd5b5051919050565b8082028115828204841417610b7f57610b7f610b56565b600082610d3a57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220e43d50323289b9d06270539e08e78cd20e54d3d4ad19e71a85eb3580416cd40964736f6c634300081400330000000000000000000000000000000000000000000000000000000065f6db400000000000000000000000000000000000000000000000000000000066095040000000000000000000000000c0c293ce456ff0ed870add98a0828dd4d2903dbf000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

Deployed Bytecode

0x6080604052600436106100ec5760003560e01c80636d18a2a01161008a578063d1e1a86711610059578063d1e1a867146103dd578063d45635bc14610411578063f2fde38b14610427578063f5f5d3361461044757610210565b80636d18a2a01461037e578063715018a61461039457806378e97925146103a95780638da5cb5b146103bf57610210565b80633197cbb6116100c65780633197cbb6146102ce57806337d277d4146102f257806351cff8d91461033e5780636884bbfb1461035e57610210565b8063147977761461023e57806321f1b6771461026057806326224c641461028057610210565b3661021057600254421080610102575060035442115b15610120576040516307ee9a4d60e51b815260040160405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561017b57600080fd5b505af115801561018f573d6000803e3d6000fd5b505033600090815260046020526040812060010180543495509093509091506101b9908490610b6c565b9250508190555034600660008282546101d29190610b6c565b9091555050604051348152339081907f8500a5914d61ba37865142bf3e1314a9c53507471a6160359237bef87dd58a769060200160405180910390a3005b6002544210806101025750600354421115610120576040516307ee9a4d60e51b815260040160405180910390fd5b34801561024a57600080fd5b5061025e610259366004610ba1565b610467565b005b34801561026c57600080fd5b5061025e61027b366004610c28565b6105cb565b34801561028c57600080fd5b506102b461029b366004610c4a565b6004602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b3480156102da57600080fd5b506102e460035481565b6040519081526020016102c5565b3480156102fe57600080fd5b506103267f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6040516001600160a01b0390911681526020016102c5565b34801561034a57600080fd5b5061025e610359366004610c4a565b6105de565b34801561036a57600080fd5b506102b4610379366004610c6c565b6107ed565b34801561038a57600080fd5b506102e460065481565b3480156103a057600080fd5b5061025e610860565b3480156103b557600080fd5b506102e460025481565b3480156103cb57600080fd5b506000546001600160a01b0316610326565b3480156103e957600080fd5b506103267f000000000000000000000000c0c293ce456ff0ed870add98a0828dd4d2903dbf81565b34801561041d57600080fd5b506102e460055481565b34801561043357600080fd5b5061025e610442366004610c4a565b610874565b34801561045357600080fd5b5061025e610462366004610c9f565b6108f2565b61046f610a53565b600254421080610480575060035442115b1561049e576040516307ee9a4d60e51b815260040160405180910390fd5b6040516323b872dd60e01b8152336004820152306024820152604481018590527f000000000000000000000000c0c293ce456ff0ed870add98a0828dd4d2903dbf6001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610511573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105359190610ccb565b506001600160a01b0383166000908152600460205260408120805486929061055e908490610b6c565b9250508190555083600560008282546105779190610b6c565b90915550506040518481526001600160a01b0384169033907fc136972e632bf56ed776728b028c865ac4ebf3a9e062ad345b141cab21ea6b539060200160405180910390a36105c560018055565b50505050565b6105d3610aac565b600291909155600355565b6105e6610aac565b6040516370a0823160e01b81523060048201527f000000000000000000000000c0c293ce456ff0ed870add98a0828dd4d2903dbf6001600160a01b03169063a9059cbb90839083906370a0823190602401602060405180830381865afa158015610654573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106789190610ced565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156106c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e79190610ccb565b506040516370a0823160e01b81523060048201527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03169063a9059cbb90839083906370a0823190602401602060405180830381865afa158015610756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077a9190610ced565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156107c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e99190610ccb565b5050565b6005546001600160a01b038416600090815260046020526040812054909182916108179086610d06565b6108219190610d1d565b6006546001600160a01b03871660009081526004602052604090206001015461084a9086610d06565b6108549190610d1d565b91509150935093915050565b610868610aac565b6108726000610b06565b565b61087c610aac565b6001600160a01b0381166108e65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6108ef81610b06565b50565b6108fa610a53565b60025442108061090b575060035442115b15610929576040516307ee9a4d60e51b815260040160405180910390fd5b6040516323b872dd60e01b8152336004820152306024820152604481018390527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316906323b872dd906064016020604051808303816000875af115801561099c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c09190610ccb565b506001600160a01b038116600090815260046020526040812060010180548492906109ec908490610b6c565b925050819055508160066000828254610a059190610b6c565b90915550506040518281526001600160a01b0382169033907f8500a5914d61ba37865142bf3e1314a9c53507471a6160359237bef87dd58a769060200160405180910390a36107e960018055565b600260015403610aa55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108dd565b6002600155565b6000546001600160a01b031633146108725760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610b7f57610b7f610b56565b92915050565b80356001600160a01b0381168114610b9c57600080fd5b919050565b60008060008060608587031215610bb757600080fd5b84359350610bc760208601610b85565b9250604085013567ffffffffffffffff80821115610be457600080fd5b818701915087601f830112610bf857600080fd5b813581811115610c0757600080fd5b886020828501011115610c1957600080fd5b95989497505060200194505050565b60008060408385031215610c3b57600080fd5b50508035926020909101359150565b600060208284031215610c5c57600080fd5b610c6582610b85565b9392505050565b600080600060608486031215610c8157600080fd5b610c8a84610b85565b95602085013595506040909401359392505050565b60008060408385031215610cb257600080fd5b82359150610cc260208401610b85565b90509250929050565b600060208284031215610cdd57600080fd5b81518015158114610c6557600080fd5b600060208284031215610cff57600080fd5b5051919050565b8082028115828204841417610b7f57610b7f610b56565b600082610d3a57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220e43d50323289b9d06270539e08e78cd20e54d3d4ad19e71a85eb3580416cd40964736f6c63430008140033

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

0000000000000000000000000000000000000000000000000000000065f6db400000000000000000000000000000000000000000000000000000000066095040000000000000000000000000c0c293ce456ff0ed870add98a0828dd4d2903dbf000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

-----Decoded View---------------
Arg [0] : _startTime (uint256): 1710676800
Arg [1] : _endTime (uint256): 1711886400
Arg [2] : _auraToken (address): 0xC0c293ce456fF0ED870ADd98a0828Dd4d2903DBF
Arg [3] : _wethToken (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000065f6db40
Arg [1] : 0000000000000000000000000000000000000000000000000000000066095040
Arg [2] : 000000000000000000000000c0c293ce456ff0ed870add98a0828dd4d2903dbf
Arg [3] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ 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.