ETH Price: $3,700.74 (+3.89%)

Contract

0x927881CD8ea82708418f12991c023928Bf53FF06
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim142029862022-02-14 7:41:011019 days ago1644824461IN
0x927881CD...8Bf53FF06
0 ETH0.0016849525
Owner Withdraw E...140753202022-01-25 14:41:291039 days ago1643121689IN
0x927881CD...8Bf53FF06
0 ETH0.00926811147.47112764
Owner Setup Toke...140750142022-01-25 13:26:321039 days ago1643117192IN
0x927881CD...8Bf53FF06
0 ETH0.6808035786.74526768
Claim140744432022-01-25 11:15:291039 days ago1643109329IN
0x927881CD...8Bf53FF06
0 ETH0.0121785167.1
Claim140743652022-01-25 10:58:061039 days ago1643108286IN
0x927881CD...8Bf53FF06
0 ETH0.0098369879.71369689
Claim140724812022-01-25 3:54:511040 days ago1643082891IN
0x927881CD...8Bf53FF06
0 ETH0.01547486125.4
Claim140705142022-01-24 20:38:341040 days ago1643056714IN
0x927881CD...8Bf53FF06
0 ETH0.04241827171.34610678
Claim140688392022-01-24 14:29:161040 days ago1643034556IN
0x927881CD...8Bf53FF06
0 ETH0.04738279191.4
Owner Setup Toke...140630532022-01-23 16:46:151041 days ago1642956375IN
0x927881CD...8Bf53FF06
0 ETH0.007194176.64409722
Claim140589572022-01-23 1:32:511042 days ago1642901571IN
0x927881CD...8Bf53FF06
0 ETH0.02736574103.4
Claim140584662022-01-22 23:43:041042 days ago1642894984IN
0x927881CD...8Bf53FF06
0 ETH0.0227077485.8
Owner Setup Toke...140576592022-01-22 20:53:411042 days ago1642884821IN
0x927881CD...8Bf53FF06
0 ETH0.01010158174.39973383
Owner Setup Toke...140576492022-01-22 20:50:501042 days ago1642884650IN
0x927881CD...8Bf53FF06
0 ETH0.00457615138.95756277
Owner Setup Toke...140576422022-01-22 20:49:371042 days ago1642884577IN
0x927881CD...8Bf53FF06
0 ETH0.00555596159.05090851
Claim140565912022-01-22 16:52:531042 days ago1642870373IN
0x927881CD...8Bf53FF06
0 ETH0.01516356142.64344072
Claim140540212022-01-22 7:15:011042 days ago1642835701IN
0x927881CD...8Bf53FF06
0 ETH0.02825239106.75018659
Claim140533172022-01-22 4:43:171043 days ago1642826597IN
0x927881CD...8Bf53FF06
0 ETH0.0158025148.65388672
Claim140529382022-01-22 3:21:581043 days ago1642821718IN
0x927881CD...8Bf53FF06
0 ETH0.03043384114.99266108
Claim140484292022-01-21 10:34:121043 days ago1642761252IN
0x927881CD...8Bf53FF06
0 ETH0.0218470782.54801925
Claim140478852022-01-21 8:34:441043 days ago1642754084IN
0x927881CD...8Bf53FF06
0 ETH0.0260736898.51805174
Transfer Ownersh...140453542022-01-20 23:07:071044 days ago1642720027IN
0x927881CD...8Bf53FF06
0 ETH0.00640311222.74797228
Claim140445192022-01-20 20:04:291044 days ago1642709069IN
0x927881CD...8Bf53FF06
0 ETH0.00434982184.8
Claim140445192022-01-20 20:04:291044 days ago1642709069IN
0x927881CD...8Bf53FF06
0 ETH0.01941144157.3
Claim140442672022-01-20 19:05:241044 days ago1642705524IN
0x927881CD...8Bf53FF06
0 ETH0.02051102187.06585257
Claim140422072022-01-20 11:41:331044 days ago1642678893IN
0x927881CD...8Bf53FF06
0 ETH0.0118467896
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
140753202022-01-25 14:41:291039 days ago1643121689
0x927881CD...8Bf53FF06
5.20847713 ETH
140743652022-01-25 10:58:061039 days ago1643108286
0x927881CD...8Bf53FF06
5 wei
140724812022-01-25 3:54:511040 days ago1643082891
0x927881CD...8Bf53FF06
1 wei
140705142022-01-24 20:38:341040 days ago1643056714
0x927881CD...8Bf53FF06
17 wei
140688392022-01-24 14:29:161040 days ago1643034556
0x927881CD...8Bf53FF06
53 wei
140589572022-01-23 1:32:511042 days ago1642901571
0x927881CD...8Bf53FF06
10 wei
140584662022-01-22 23:43:041042 days ago1642894984
0x927881CD...8Bf53FF06
4 wei
140565912022-01-22 16:52:531042 days ago1642870373
0x927881CD...8Bf53FF06
0.0117306 ETH
140540212022-01-22 7:15:011042 days ago1642835701
0x927881CD...8Bf53FF06
0.00172875 ETH
140533172022-01-22 4:43:171043 days ago1642826597
0x927881CD...8Bf53FF06
0.00340512 ETH
140529382022-01-22 3:21:581043 days ago1642821718
0x927881CD...8Bf53FF06
0.04554094 ETH
140484292022-01-21 10:34:121043 days ago1642761252
0x927881CD...8Bf53FF06
0.01636071 ETH
140478852022-01-21 8:34:441043 days ago1642754084
0x927881CD...8Bf53FF06
0.00395363 ETH
140445192022-01-20 20:04:291044 days ago1642709069
0x927881CD...8Bf53FF06
0.00040431 ETH
140422072022-01-20 11:41:331044 days ago1642678893
0x927881CD...8Bf53FF06
0.00121432 ETH
140420592022-01-20 11:06:001044 days ago1642676760
0x927881CD...8Bf53FF06
0.00369235 ETH
140377342022-01-19 19:03:361045 days ago1642619016
0x927881CD...8Bf53FF06
0.00441984 ETH
140344762022-01-19 6:55:161045 days ago1642575316
0x927881CD...8Bf53FF06
0.00348927 ETH
140343582022-01-19 6:28:401045 days ago1642573720
0x927881CD...8Bf53FF06
0.0016184 ETH
140341472022-01-19 5:41:241046 days ago1642570884
0x927881CD...8Bf53FF06
0.00523124 ETH
140315142022-01-18 19:46:471046 days ago1642535207
0x927881CD...8Bf53FF06
0.0142295 ETH
140313512022-01-18 19:08:031046 days ago1642532883
0x927881CD...8Bf53FF06
0.00963231 ETH
140311212022-01-18 18:20:201046 days ago1642530020
0x927881CD...8Bf53FF06
0.0020503 ETH
140311002022-01-18 18:16:401046 days ago1642529800
0x927881CD...8Bf53FF06
0.00312785 ETH
140310362022-01-18 18:03:401046 days ago1642529020
0x927881CD...8Bf53FF06
0.02689693 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x0f0D7fc1...8e2e9e71F
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
GiveawayContract

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2022-01-06
*/

// SPDX-License-Identifier: MIT
// 84 71 32 64 84 104 101 71 104 111 115 116 68 101 118 
// ASCII

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 GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

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

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

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

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

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

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

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


/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) return (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) return 0;
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryDiv}.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
}


interface IERC20 {
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract GiveawayContract is Ownable {
    using SafeMath for uint256;

    IERC20 public tokenAccel;

    struct TokenInputInfo {
        address addr;
        uint256 rateInput;
        uint256 rateOutput;
    }
    mapping (uint256 => TokenInputInfo) public tokenInput;
    mapping (uint256 => mapping (address => uint256)) private balances;
    mapping (address => bool) public claimed;

    uint256 private totalDevidend;

    constructor(address _tokenAccel) {
        tokenAccel = IERC20(_tokenAccel);
    }    
    
    function ownerAddInputTokenForSwap(uint256 id, address _inputToken, uint256 _inputRate, uint256 _outputRate)public onlyOwner{
        require(id < 3, "There 3 token, id should be 0,1,2");
        tokenInput[id].addr = _inputToken;
        tokenInput[id].rateInput = _inputRate;
        tokenInput[id].rateOutput = _outputRate;
    }

    receive() external payable {
    }

    function ownerWithdrawEthAndToken() public onlyOwner{    
        tokenAccel.transfer(msg.sender, tokenAccel.balanceOf(address(this)));
        payable(msg.sender).transfer(address(this).balance);
    }

    function ownerSetupTokenBalance(uint256 id, address[] calldata accounts, uint256[] calldata amount) public onlyOwner {
        require(id < 3, "There 3 token, id should be 0,1,2");
        for( uint256 i = 0; i < accounts.length; i++){
            balances[id][accounts[i]] = amount[i];
            totalDevidend = totalDevidend.add(amount[i].mul(tokenInput[id].rateOutput).div(tokenInput[id].rateInput));
        }
    }

    function getClaimableAmount(address account) public view returns(uint256 tokens, uint256 eth, uint256 dividend){
        if(totalDevidend == 0){
            tokens = 0;
            eth = 0;
            dividend = 0;
        }else{
            uint256 yourDividend = 0;
            for (uint256 i= 0; i<3; i++){
                if(tokenInput[i].rateInput > 0)
                    yourDividend = yourDividend.add(balances[i][account].mul(tokenInput[i].rateOutput).div(tokenInput[i].rateInput));
            }
            tokens = tokenAccel.balanceOf(address(this)).mul(yourDividend).div(totalDevidend);
            eth = address(this).balance.mul(yourDividend).div(totalDevidend);
            dividend = yourDividend;
        }
    }

    function claim() public{
        require(claimed[msg.sender] == false, "Already claimed");
        claimed[msg.sender] = true;
        (uint256 tokens, uint256 eth, uint256 dividend) = getClaimableAmount(msg.sender);
        tokenAccel.transfer(msg.sender, tokens);
        payable(msg.sender).transfer(eth);
        totalDevidend = totalDevidend - dividend;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_tokenAccel","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getClaimableAmount","outputs":[{"internalType":"uint256","name":"tokens","type":"uint256"},{"internalType":"uint256","name":"eth","type":"uint256"},{"internalType":"uint256","name":"dividend","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"_inputToken","type":"address"},{"internalType":"uint256","name":"_inputRate","type":"uint256"},{"internalType":"uint256","name":"_outputRate","type":"uint256"}],"name":"ownerAddInputTokenForSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amount","type":"uint256[]"}],"name":"ownerSetupTokenBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ownerWithdrawEthAndToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenAccel","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenInput","outputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"rateInput","type":"uint256"},{"internalType":"uint256","name":"rateOutput","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x6080604052600436106100a05760003560e01c80637333555911610064578063733355591461014a5780637df62b6f1461016a5780638da5cb5b146101d6578063c884ef83146101f4578063e12f3a6114610234578063f2fde38b1461026f57600080fd5b806330878aae146100ac5780634e71d92d146100c357806362faf223146100d85780636c8ffd93146100f8578063715018a61461013557600080fd5b366100a757005b600080fd5b3480156100b857600080fd5b506100c161028f565b005b3480156100cf57600080fd5b506100c16103f5565b3480156100e457600080fd5b506100c16100f3366004610c28565b61053e565b34801561010457600080fd5b50600154610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c16106a7565b34801561015657600080fd5b506100c1610165366004610bee565b61071b565b34801561017657600080fd5b506101b1610185366004610bbe565b60026020819052600091825260409091208054600182015491909201546001600160a01b039092169183565b604080516001600160a01b03909416845260208401929092529082015260600161012c565b3480156101e257600080fd5b506000546001600160a01b0316610118565b34801561020057600080fd5b5061022461020f366004610b84565b60046020526000908152604090205460ff1681565b604051901515815260200161012c565b34801561024057600080fd5b5061025461024f366004610b84565b6107a1565b6040805193845260208401929092529082015260600161012c565b34801561027b57600080fd5b506100c161028a366004610b84565b6108f2565b6000546001600160a01b031633146102c25760405162461bcd60e51b81526004016102b990610ce0565b60405180910390fd5b6001546040516370a0823160e01b81523060048201526001600160a01b039091169063a9059cbb90339083906370a082319060240160206040518083038186803b15801561030f57600080fd5b505afa158015610323573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103479190610bd6565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561038d57600080fd5b505af11580156103a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c59190610b9e565b5060405133904780156108fc02916000818181858888f193505050501580156103f2573d6000803e3d6000fd5b50565b3360009081526004602052604090205460ff16156104475760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e4818db185a5b5959608a1b60448201526064016102b9565b336000818152600460205260408120805460ff19166001179055908190819061046f906107a1565b60015460405163a9059cbb60e01b81523360048201526024810185905293965091945092506001600160a01b03169063a9059cbb90604401602060405180830381600087803b1580156104c157600080fd5b505af11580156104d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f99190610b9e565b50604051339083156108fc029084906000818181858888f19350505050158015610527573d6000803e3d6000fd5b50806005546105369190610d6c565b600555505050565b6000546001600160a01b031633146105685760405162461bcd60e51b81526004016102b990610ce0565b600385106105885760405162461bcd60e51b81526004016102b990610c9f565b60005b8381101561069f578282828181106105b357634e487b7160e01b600052603260045260246000fd5b905060200201356003600088815260200190815260200160002060008787858181106105ef57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906106049190610b84565b6001600160a01b031681526020808201929092526040908101600090812093909355888352600291829052909120600181015491015461068a916106819161067b9087878781811061066657634e487b7160e01b600052603260045260246000fd5b905060200201356109dc90919063ffffffff16565b90610a64565b60055490610abf565b6005558061069781610d83565b91505061058b565b505050505050565b6000546001600160a01b031633146106d15760405162461bcd60e51b81526004016102b990610ce0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107455760405162461bcd60e51b81526004016102b990610ce0565b600384106107655760405162461bcd60e51b81526004016102b990610c9f565b600093845260026020819052604090942080546001600160a01b0319166001600160a01b03949094169390931783556001830191909155910155565b6000806000600554600014156107bf575060009150819050806108eb565b6000805b600381101561084457600081815260026020526040902060010154156108325760008181526002602081815260408084206001810154930154600383528185206001600160a01b038c1686529092529092205461082f92610828929161067b916109dc565b8390610abf565b91505b8061083c81610d83565b9150506107c3565b506005546001546040516370a0823160e01b81523060048201526108d2929161067b9185916001600160a01b0316906370a082319060240160206040518083038186803b15801561089457600080fd5b505afa1580156108a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cc9190610bd6565b906109dc565b6005549094506108e69061067b47846109dc565b925090505b9193909250565b6000546001600160a01b0316331461091c5760405162461bcd60e51b81526004016102b990610ce0565b6001600160a01b0381166109815760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000826109eb57506000610a5e565b60006109f78385610d4d565b905082610a048583610d2d565b14610a5b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016102b9565b90505b92915050565b6000808211610ab55760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f00000000000060448201526064016102b9565b610a5b8284610d2d565b600080610acc8385610d15565b905083811015610a5b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016102b9565b80356001600160a01b0381168114610b3557600080fd5b919050565b60008083601f840112610b4b578182fd5b50813567ffffffffffffffff811115610b62578182fd5b6020830191508360208260051b8501011115610b7d57600080fd5b9250929050565b600060208284031215610b95578081fd5b610a5b82610b1e565b600060208284031215610baf578081fd5b81518015158114610a5b578182fd5b600060208284031215610bcf578081fd5b5035919050565b600060208284031215610be7578081fd5b5051919050565b60008060008060808587031215610c03578283fd5b84359350610c1360208601610b1e565b93969395505050506040820135916060013590565b600080600080600060608688031215610c3f578081fd5b85359450602086013567ffffffffffffffff80821115610c5d578283fd5b610c6989838a01610b3a565b90965094506040880135915080821115610c81578283fd5b50610c8e88828901610b3a565b969995985093965092949392505050565b60208082526021908201527f5468657265203320746f6b656e2c2069642073686f756c6420626520302c312c6040820152601960f91b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610d2857610d28610d9e565b500190565b600082610d4857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610d6757610d67610d9e565b500290565b600082821015610d7e57610d7e610d9e565b500390565b6000600019821415610d9757610d97610d9e565b5060010190565b634e487b7160e01b600052601160045260246000fdfea26469706673582212209c4e881732b714f5b4e4c433f6d594b97547a5aedc96127d0e5b705fafcc560c64736f6c63430008040033

Deployed Bytecode Sourcemap

11338:2715:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12274:205;;;;;;;;;;;;;:::i;:::-;;13677:371;;;;;;;;;;;;;:::i;12487:427::-;;;;;;;;;;-1:-1:-1;12487:427:0;;;;;:::i;:::-;;:::i;11417:24::-;;;;;;;;;;-1:-1:-1;11417:24:0;;;;-1:-1:-1;;;;;11417:24:0;;;;;;-1:-1:-1;;;;;2935:32:1;;;2917:51;;2905:2;2890:18;11417:24:0;;;;;;;;2676:148;;;;;;;;;;;;;:::i;11886:337::-;;;;;;;;;;-1:-1:-1;11886:337:0;;;;;:::i;:::-;;:::i;11566:53::-;;;;;;;;;;-1:-1:-1;11566:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11566:53:0;;;;;;;;;;-1:-1:-1;;;;;3478:32:1;;;3460:51;;3542:2;3527:18;;3520:34;;;;3570:18;;;3563:34;3448:2;3433:18;11566:53:0;3415:188:1;2025:87:0;;;;;;;;;;-1:-1:-1;2071:7:0;2098:6;-1:-1:-1;;;;;2098:6:0;2025:87;;11699:40;;;;;;;;;;-1:-1:-1;11699:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3773:14:1;;3766:22;3748:41;;3736:2;3721:18;11699:40:0;3703:92:1;12922:747:0;;;;;;;;;;-1:-1:-1;12922:747:0;;;;;:::i;:::-;;:::i;:::-;;;;6851:25:1;;;6907:2;6892:18;;6885:34;;;;6935:18;;;6928:34;6839:2;6824:18;12922:747:0;6806:162:1;2979:244:0;;;;;;;;;;-1:-1:-1;2979:244:0;;;;;:::i;:::-;;:::i;12274:205::-;2071:7;2098:6;-1:-1:-1;;;;;2098:6:0;751:10;2245:23;2237:68;;;;-1:-1:-1;;;2237:68:0;;;;;;;:::i;:::-;;;;;;;;;12341:10:::1;::::0;12373:35:::1;::::0;-1:-1:-1;;;12373:35:0;;12402:4:::1;12373:35;::::0;::::1;2917:51:1::0;-1:-1:-1;;;;;12341:10:0;;::::1;::::0;:19:::1;::::0;12361:10:::1;::::0;12341;;12373:20:::1;::::0;2890:18:1;;12373:35:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12341:68;::::0;-1:-1:-1;;;;;;12341:68:0::1;::::0;;;;;;-1:-1:-1;;;;;3171:32:1;;;12341:68:0::1;::::0;::::1;3153:51:1::0;3220:18;;;3213:34;3126:18;;12341:68:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12420:51:0::1;::::0;12428:10:::1;::::0;12449:21:::1;12420:51:::0;::::1;;;::::0;::::1;::::0;;;12449:21;12428:10;12420:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12274:205::o:0;13677:371::-;13727:10;13719:19;;;;:7;:19;;;;;;;;:28;13711:56;;;;-1:-1:-1;;;13711:56:0;;5744:2:1;13711:56:0;;;5726:21:1;5783:2;5763:18;;;5756:30;-1:-1:-1;;;5802:18:1;;;5795:45;5857:18;;13711:56:0;5716:165:1;13711:56:0;13786:10;13778:19;;;;:7;:19;;;;;:26;;-1:-1:-1;;13778:26:0;13800:4;13778:26;;;:19;;;;;13865:30;;:18;:30::i;:::-;13906:10;;:39;;-1:-1:-1;;;13906:39:0;;13926:10;13906:39;;;3153:51:1;3220:18;;;3213:34;;;13815:80:0;;-1:-1:-1;13815:80:0;;-1:-1:-1;13815:80:0;-1:-1:-1;;;;;;13906:10:0;;:19;;3126:18:1;;13906:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13956:33:0;;13964:10;;13956:33;;;;;13985:3;;13956:33;;;;13985:3;13964:10;13956:33;;;;;;;;;;;;;;;;;;;;;14032:8;14016:13;;:24;;;;:::i;:::-;14000:13;:40;-1:-1:-1;;;13677:371:0:o;12487:427::-;2071:7;2098:6;-1:-1:-1;;;;;2098:6:0;751:10;2245:23;2237:68;;;;-1:-1:-1;;;2237:68:0;;;;;;;:::i;:::-;12628:1:::1;12623:2;:6;12615:52;;;;-1:-1:-1::0;;;12615:52:0::1;;;;;;;:::i;:::-;12683:9;12678:229;12698:19:::0;;::::1;12678:229;;;12766:6;;12773:1;12766:9;;;;;-1:-1:-1::0;;;12766:9:0::1;;;;;;;;;;;;;;;12738:8;:12;12747:2;12738:12;;;;;;;;;;;:25;12751:8;;12760:1;12751:11;;;;;-1:-1:-1::0;;;12751:11:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12738:25:0::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;12738:25:0;;;:37;;;;12869:14;;;:10:::1;:14:::0;;;;;;;:24:::1;::::0;::::1;::::0;12838:25;::::1;::::0;12806:89:::1;::::0;12824:70:::1;::::0;:40:::1;::::0;:6;;12831:1;12824:9;;::::1;;;-1:-1:-1::0;;;12824:9:0::1;;;;;;;;;;;;;;;:13;;:40;;;;:::i;:::-;:44:::0;::::1;:70::i;:::-;12806:13;::::0;;:17:::1;:89::i;:::-;12790:13;:105:::0;12719:3;::::1;::::0;::::1;:::i;:::-;;;;12678:229;;;;12487:427:::0;;;;;:::o;2676:148::-;2071:7;2098:6;-1:-1:-1;;;;;2098:6:0;751:10;2245:23;2237:68;;;;-1:-1:-1;;;2237:68:0;;;;;;;:::i;:::-;2783:1:::1;2767:6:::0;;2746:40:::1;::::0;-1:-1:-1;;;;;2767:6:0;;::::1;::::0;2746:40:::1;::::0;2783:1;;2746:40:::1;2814:1;2797:19:::0;;-1:-1:-1;;;;;;2797:19:0::1;::::0;;2676:148::o;11886:337::-;2071:7;2098:6;-1:-1:-1;;;;;2098:6:0;751:10;2245:23;2237:68;;;;-1:-1:-1;;;2237:68:0;;;;;;;:::i;:::-;12034:1:::1;12029:2;:6;12021:52;;;;-1:-1:-1::0;;;12021:52:0::1;;;;;;;:::i;:::-;12084:14;::::0;;;:10:::1;:14;::::0;;;;;;;:33;;-1:-1:-1;;;;;;12084:33:0::1;-1:-1:-1::0;;;;;12084:33:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;12128:24:0;::::1;:37:::0;;;;12176:25;::::1;:39:::0;11886:337::o;12922:747::-;12987:14;13003:11;13016:16;13047:13;;13064:1;13047:18;13044:618;;;-1:-1:-1;13090:1:0;;-1:-1:-1;13090:1:0;;-1:-1:-1;13090:1:0;13044:618;;;13171:20;13215:9;13210:228;13231:1;13229;:3;13210:228;;;13286:1;13260:13;;;:10;:13;;;;;:23;;;:27;13257:165;;13397:13;;;;:10;:13;;;;;;;;:23;;;;13367:24;;;13342:8;:11;;;;;-1:-1:-1;;;;;13342:20:0;;;;;;;;;;;13325:97;;13342:79;;13397:23;13342:50;;:24;:50::i;:79::-;13325:12;;:16;:97::i;:::-;13310:112;;13257:165;13234:3;;;;:::i;:::-;;;;13210:228;;;-1:-1:-1;13519:13:0;;13461:10;;:35;;-1:-1:-1;;;13461:35:0;;13490:4;13461:35;;;2917:51:1;13461:72:0;;13519:13;13461:53;;13501:12;;-1:-1:-1;;;;;13461:10:0;;:20;;2890:18:1;;13461:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;:53::i;:72::-;13598:13;;13452:81;;-1:-1:-1;13554:58:0;;:39;:21;13580:12;13554:25;:39::i;:58::-;13548:64;-1:-1:-1;13638:12:0;-1:-1:-1;13044:618:0;12922:747;;;;;:::o;2979:244::-;2071:7;2098:6;-1:-1:-1;;;;;2098:6:0;751:10;2245:23;2237:68;;;;-1:-1:-1;;;2237:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3068:22:0;::::1;3060:73;;;::::0;-1:-1:-1;;;3060:73:0;;4224:2:1;3060:73:0::1;::::0;::::1;4206:21:1::0;4263:2;4243:18;;;4236:30;4302:34;4282:18;;;4275:62;-1:-1:-1;;;4353:18:1;;;4346:36;4399:19;;3060:73:0::1;4196:228:1::0;3060:73:0::1;3170:6;::::0;;3149:38:::1;::::0;-1:-1:-1;;;;;3149:38:0;;::::1;::::0;3170:6;::::1;::::0;3149:38:::1;::::0;::::1;3198:6;:17:::0;;-1:-1:-1;;;;;;3198:17:0::1;-1:-1:-1::0;;;;;3198:17:0;;;::::1;::::0;;;::::1;::::0;;2979:244::o;6815:220::-;6873:7;6897:6;6893:20;;-1:-1:-1;6912:1:0;6905:8;;6893:20;6924:9;6936:5;6940:1;6936;:5;:::i;:::-;6924:17;-1:-1:-1;6969:1:0;6960:5;6964:1;6924:17;6960:5;:::i;:::-;:10;6952:56;;;;-1:-1:-1;;;6952:56:0;;6088:2:1;6952:56:0;;;6070:21:1;6127:2;6107:18;;;6100:30;6166:34;6146:18;;;6139:62;-1:-1:-1;;;6217:18:1;;;6210:31;6258:19;;6952:56:0;6060:223:1;6952:56:0;7026:1;-1:-1:-1;6815:220:0;;;;;:::o;7513:153::-;7571:7;7603:1;7599;:5;7591:44;;;;-1:-1:-1;;;7591:44:0;;4987:2:1;7591:44:0;;;4969:21:1;5026:2;5006:18;;;4999:30;5065:28;5045:18;;;5038:56;5111:18;;7591:44:0;4959:176:1;7591:44:0;7653:5;7657:1;7653;:5;:::i;5936:179::-;5994:7;;6026:5;6030:1;6026;:5;:::i;:::-;6014:17;;6055:1;6050;:6;;6042:46;;;;-1:-1:-1;;;6042:46:0;;4631:2:1;6042:46:0;;;4613:21:1;4670:2;4650:18;;;4643:30;4709:29;4689:18;;;4682:57;4756:18;;6042:46:0;4603:177:1;14:173;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:395::-;255:8;265:6;319:3;312:4;304:6;300:17;296:27;286:2;;344:8;334;327:26;286:2;-1:-1:-1;374:20:1;;417:18;406:30;;403:2;;;456:8;446;439:26;403:2;500:4;492:6;488:17;476:29;;560:3;553:4;543:6;540:1;536:14;528:6;524:27;520:38;517:47;514:2;;;577:1;574;567:12;514:2;276:311;;;;;:::o;592:196::-;651:6;704:2;692:9;683:7;679:23;675:32;672:2;;;725:6;717;710:22;672:2;753:29;772:9;753:29;:::i;793:297::-;860:6;913:2;901:9;892:7;888:23;884:32;881:2;;;934:6;926;919:22;881:2;971:9;965:16;1024:5;1017:13;1010:21;1003:5;1000:32;990:2;;1051:6;1043;1036:22;1095:190;1154:6;1207:2;1195:9;1186:7;1182:23;1178:32;1175:2;;;1228:6;1220;1213:22;1175:2;-1:-1:-1;1256:23:1;;1165:120;-1:-1:-1;1165:120:1:o;1290:194::-;1360:6;1413:2;1401:9;1392:7;1388:23;1384:32;1381:2;;;1434:6;1426;1419:22;1381:2;-1:-1:-1;1462:16:1;;1371:113;-1:-1:-1;1371:113:1:o;1489:401::-;1575:6;1583;1591;1599;1652:3;1640:9;1631:7;1627:23;1623:33;1620:2;;;1674:6;1666;1659:22;1620:2;1715:9;1702:23;1692:33;;1744:38;1778:2;1767:9;1763:18;1744:38;:::i;:::-;1610:280;;1734:48;;-1:-1:-1;;;;1829:2:1;1814:18;;1801:32;;1880:2;1865:18;1852:32;;1610:280::o;1895:871::-;2026:6;2034;2042;2050;2058;2111:2;2099:9;2090:7;2086:23;2082:32;2079:2;;;2132:6;2124;2117:22;2079:2;2173:9;2160:23;2150:33;;2234:2;2223:9;2219:18;2206:32;2257:18;2298:2;2290:6;2287:14;2284:2;;;2319:6;2311;2304:22;2284:2;2363:70;2425:7;2416:6;2405:9;2401:22;2363:70;:::i;:::-;2452:8;;-1:-1:-1;2337:96:1;-1:-1:-1;2540:2:1;2525:18;;2512:32;;-1:-1:-1;2556:16:1;;;2553:2;;;2590:6;2582;2575:22;2553:2;;2634:72;2698:7;2687:8;2676:9;2672:24;2634:72;:::i;:::-;2069:697;;;;-1:-1:-1;2069:697:1;;-1:-1:-1;2725:8:1;;2608:98;2069:697;-1:-1:-1;;;2069:697:1:o;5140:397::-;5342:2;5324:21;;;5381:2;5361:18;;;5354:30;5420:34;5415:2;5400:18;;5393:62;-1:-1:-1;;;5486:2:1;5471:18;;5464:31;5527:3;5512:19;;5314:223::o;6288:356::-;6490:2;6472:21;;;6509:18;;;6502:30;6568:34;6563:2;6548:18;;6541:62;6635:2;6620:18;;6462:182::o;6973:128::-;7013:3;7044:1;7040:6;7037:1;7034:13;7031:2;;;7050:18;;:::i;:::-;-1:-1:-1;7086:9:1;;7021:80::o;7106:217::-;7146:1;7172;7162:2;;-1:-1:-1;;;7197:31:1;;7251:4;7248:1;7241:15;7279:4;7204:1;7269:15;7162:2;-1:-1:-1;7308:9:1;;7152:171::o;7328:168::-;7368:7;7434:1;7430;7426:6;7422:14;7419:1;7416:21;7411:1;7404:9;7397:17;7393:45;7390:2;;;7441:18;;:::i;:::-;-1:-1:-1;7481:9:1;;7380:116::o;7501:125::-;7541:4;7569:1;7566;7563:8;7560:2;;;7574:18;;:::i;:::-;-1:-1:-1;7611:9:1;;7550:76::o;7631:135::-;7670:3;-1:-1:-1;;7691:17:1;;7688:2;;;7711:18;;:::i;:::-;-1:-1:-1;7758:1:1;7747:13;;7678:88::o;7771:127::-;7832:10;7827:3;7823:20;7820:1;7813:31;7863:4;7860:1;7853:15;7887:4;7884:1;7877:15

Swarm Source

ipfs://9c4e881732b714f5b4e4c433f6d594b97547a5aedc96127d0e5b705fafcc560c

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.