ETH Price: $2,286.98 (-5.09%)

Contract

0x6F56235033CE73256C041CF63dCc78c18a036336
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim153412202022-08-14 18:02:59763 days ago1660500179IN
0x6F562350...18a036336
0 ETH0.0035441440.72938889
Claim153412172022-08-14 18:01:46763 days ago1660500106IN
0x6F562350...18a036336
0 ETH0.0030220734.72493003
Claim151463372022-07-15 9:07:17794 days ago1657876037IN
0x6F562350...18a036336
0 ETH0.000985198
Claim149010312022-06-04 3:35:53835 days ago1654313753IN
0x6F562350...18a036336
0 ETH0.0249260725
Claim148969892022-06-03 11:59:06836 days ago1654257546IN
0x6F562350...18a036336
0 ETH0.0039846428.34936143
Claim148676182022-05-29 16:56:14840 days ago1653843374IN
0x6F562350...18a036336
0 ETH0.0028115820
Claim148456042022-05-26 3:14:35844 days ago1653534875IN
0x6F562350...18a036336
0 ETH0.0251366221.69205504
Claim148378632022-05-24 20:46:04845 days ago1653425164IN
0x6F562350...18a036336
0 ETH0.0047541421.2530994
Claim148331352022-05-24 2:14:16846 days ago1653358456IN
0x6F562350...18a036336
0 ETH0.0055368713.48149978
Claim148220792022-05-22 7:21:48848 days ago1653204108IN
0x6F562350...18a036336
0 ETH0.0035669910
Claim148198792022-05-21 22:40:01848 days ago1653172801IN
0x6F562350...18a036336
0 ETH0.0023487712.09903293
Claim148121292022-05-20 16:24:54849 days ago1653063894IN
0x6F562350...18a036336
0 ETH0.0058199229.97969138
Claim147463222022-05-10 3:42:38860 days ago1652154158IN
0x6F562350...18a036336
0 ETH0.016635850.3541719
Claim147439542022-05-09 18:33:39860 days ago1652121219IN
0x6F562350...18a036336
0 ETH0.0095201283.65372303
Claim147422922022-05-09 11:58:27861 days ago1652097507IN
0x6F562350...18a036336
0 ETH0.0017766725.44689663
Claim147422572022-05-09 11:52:36861 days ago1652097156IN
0x6F562350...18a036336
0 ETH0.0041782929.72202731
Claim147389722022-05-08 23:21:49861 days ago1652052109IN
0x6F562350...18a036336
0 ETH0.0048335214.62657086
Claim147356292022-05-08 10:48:10862 days ago1652006890IN
0x6F562350...18a036336
0 ETH0.0037323621.14762756
Claim147218962022-05-06 6:12:15864 days ago1651817535IN
0x6F562350...18a036336
0 ETH0.0027028431.09615377
Claim147140052022-05-05 0:11:14865 days ago1651709474IN
0x6F562350...18a036336
0 ETH0.0332276842.07420337
Claim147139832022-05-05 0:06:05865 days ago1651709165IN
0x6F562350...18a036336
0 ETH0.0019110753.0206537
Claim147139832022-05-05 0:06:05865 days ago1651709165IN
0x6F562350...18a036336
0 ETH0.0429443953.0206537
Claim147132992022-05-04 21:30:48865 days ago1651699848IN
0x6F562350...18a036336
0 ETH0.0164391145.9890802
Claim147112692022-05-04 13:38:43866 days ago1651671523IN
0x6F562350...18a036336
0 ETH0.0559546940.76607281
Claim147065442022-05-03 19:32:11866 days ago1651606331IN
0x6F562350...18a036336
0 ETH0.0417229944.14300293
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KingTokenDistributor

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 5 : KingTokenDistributor.sol
pragma solidity 0.8.10;

import "./interfaces/IERC20.sol";
import "./interfaces/IERC721.sol";
import "./libraries/SafeERC20.sol";

/// @title   King Token Distributor
/// @notice  Distributes King tokens for Incooom Genesis and Kings Gala
/// @author  JeffX
contract KingTokenDistributor {
    using SafeERC20 for IERC20;

    /// ERRORS ///

    /// @notice Error for if user is not the needed owner
    error NotOwner();
    /// @notice Error for if ID has already been claimed
    error IDAlreadyClaimed();

    /// STATE VARIABLES ///

    /// @notice King Token
    address public immutable kingToken;
    /// @notice Incooom Genesis
    address public immutable incooomGenesis;
    /// @notice Kings Gala
    address public immutable kingsGala;
    /// @notice Owner
    address public immutable owner;

    /// @notice Amount of King per Genesis
    uint256 public constant kingPerGenesis = 3333000000000000000000;
    /// @notice Amount of King per King's Gala
    uint256 public constant kingPerGala = 3690000000000000000000;

    /// @notice Genesis ID to if King has been claimed for
    mapping(uint256 => bool) public genesisIDClaimed;
    /// @notice King's Gala ID to if King has been claimed for
    mapping(uint256 => bool) public kingsGalaIDClaimed;

    /// CONSTRUCTOR ///

    /// @param _kingToken      Address of King token
    /// @param _incoomGenesis  Address of Incoom Genesis
    /// @param _kingsGala      Address of King's Gala
    /// @param _owner          Address of owner
    constructor(
        address _kingToken,
        address _incoomGenesis,
        address _kingsGala,
        address _owner
    ) {
        kingToken = _kingToken;
        incooomGenesis = _incoomGenesis;
        kingsGala = _kingsGala;
        owner = _owner;
    }

    /// USER FUNCTION ///

    /// @notice               Claims King for Genesis and King's Gala tokens
    /// @param _genesisIDs    Array of IDs for Genesis
    /// @param _kingsGalaIDs  Array of IDs for King's Gala
    /// @param _to            Address where King will be sent
    function claim(
        uint256[] calldata _genesisIDs,
        uint256[] calldata _kingsGalaIDs,
        address _to
    ) external {
        uint256 kingToSend;

        if(_genesisIDs.length > 0) {
            kingToSend += claimForGenesis(_genesisIDs);
        }

        if(_kingsGalaIDs.length > 0) {
            kingToSend += claimForKingsGala(_kingsGalaIDs);
        }

        if(kingToSend > 0) {
            IERC20(kingToken).safeTransfer(_to, kingToSend);
        }
    }

    /// PRIVATE FUNCTIONS ///

    /// @notice              Returns amount of King to be sent for Genesis tokens if no revert
    /// @param _ids          Array of IDs for Genesis
    /// @return kingToSend_  King to send for `_ids `
    function claimForGenesis(uint256[] calldata _ids) private returns (uint256 kingToSend_) {
        for (uint256 i; i < _ids.length; ++i) {
            if (IERC721(incooomGenesis).ownerOf(_ids[i]) != msg.sender)
                revert NotOwner();
            if (genesisIDClaimed[_ids[i]] == true) revert IDAlreadyClaimed();
            genesisIDClaimed[_ids[i]] = true;
        }

        return kingPerGenesis * _ids.length;
    }

    /// @notice              Returns amount of King to be sent for King's Gala tokens if no revert
    /// @param _ids          Array of IDs for King's Gala
    /// @return kingToSend_  King to send for `_ids `
    function claimForKingsGala(uint256[] calldata _ids) private returns (uint256 kingToSend_) {
        for (uint256 i; i < _ids.length; ++i) {
            if (IERC721(kingsGala).ownerOf(_ids[i]) != msg.sender)
                revert NotOwner();
            if (kingsGalaIDClaimed[_ids[i]] == true) revert IDAlreadyClaimed();
            kingsGalaIDClaimed[_ids[i]] = true;
        }

        return kingPerGala * _ids.length;
    }

    /// OWNER FUNCTION ///

    /// @notice         Owner of contracts transfers specified token
    /// @param _token   Address of token being send
    /// @param _to      Address where `_token` is being sent
    /// @param _amount  Amount of `_token` that is being sent
    function transferToken(address _token, address _to, uint256 _amount) external {
        if(msg.sender != owner) revert NotOwner();
        IERC20(_token).safeTransfer(_to, _amount);
    }
}

File 2 of 5 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.3.2 (token/ERC20/IERC20.sol)

pragma solidity 0.8.10;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 3 of 5 : IERC721.sol
// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity 0.8.10;

import "./IERC165.sol";

/**
 * @dev Required interface of an ERC721 compliant contract.
 */
interface IERC721 is IERC165 {
    /**
     * @dev Emitted when `tokenId` token is transferred from `from` to `to`.
     */
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
    
    /**
     * @dev Returns the total amount of tokens stored by the contract.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.
     */
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);

    /**
     * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.
     */
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    /**
     * @dev Returns the number of tokens in ``owner``'s account.
     */
    function balanceOf(address owner) external view returns (uint256 balance);

    /**
     * @dev Returns the owner of the `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function ownerOf(uint256 tokenId) external view returns (address owner);

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients
     * are aware of the ERC721 protocol to prevent tokens from being forever locked.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    /**
     * @dev Transfers `tokenId` token from `from` to `to`.
     *
     * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    /**
     * @dev Gives permission to `to` to transfer `tokenId` token to another account.
     * The approval is cleared when the token is transferred.
     *
     * Only a single account can be approved at a time, so approving the zero address clears previous approvals.
     *
     * Requirements:
     *
     * - The caller must own the token or be an approved operator.
     * - `tokenId` must exist.
     *
     * Emits an {Approval} event.
     */
    function approve(address to, uint256 tokenId) external;

    /**
     * @dev Returns the account approved for `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function getApproved(uint256 tokenId) external view returns (address operator);

    /**
     * @dev Approve or remove `operator` as an operator for the caller.
     * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.
     *
     * Requirements:
     *
     * - The `operator` cannot be the caller.
     *
     * Emits an {ApprovalForAll} event.
     */
    function setApprovalForAll(address operator, bool _approved) external;

    /**
     * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.
     *
     * See {setApprovalForAll}
     */
    function isApprovedForAll(address owner, address operator) external view returns (bool);

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes calldata data
    ) external;
}

File 4 of 5 : SafeERC20.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity 0.8.10;

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

/// @notice Safe IERC20 and ETH transfer library that safely handles missing return values.
/// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v3-periphery/blob/main/contracts/libraries/TransferHelper.sol)
/// Taken from Solmate
library SafeERC20 {
    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 amount
    ) internal {
        (bool success, bytes memory data) = address(token).call(
            abi.encodeWithSelector(IERC20.transferFrom.selector, from, to, amount)
        );

        require(success && (data.length == 0 || abi.decode(data, (bool))), "TRANSFER_FROM_FAILED");
    }

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 amount
    ) internal {
        (bool success, bytes memory data) = address(token).call(
            abi.encodeWithSelector(IERC20.transfer.selector, to, amount)
        );

        require(success && (data.length == 0 || abi.decode(data, (bool))), "TRANSFER_FAILED");
    }

    function safeApprove(
        IERC20 token,
        address to,
        uint256 amount
    ) internal {
        (bool success, bytes memory data) = address(token).call(
            abi.encodeWithSelector(IERC20.approve.selector, to, amount)
        );

        require(success && (data.length == 0 || abi.decode(data, (bool))), "APPROVE_FAILED");
    }

    function safeTransferETH(address to, uint256 amount) internal {
        (bool success, ) = to.call{value: amount}(new bytes(0));

        require(success, "ETH_TRANSFER_FAILED");
    }
}

File 5 of 5 : IERC165.sol
// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity 0.8.10;

/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
interface IERC165 {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_kingToken","type":"address"},{"internalType":"address","name":"_incoomGenesis","type":"address"},{"internalType":"address","name":"_kingsGala","type":"address"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"IDAlreadyClaimed","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[{"internalType":"uint256[]","name":"_genesisIDs","type":"uint256[]"},{"internalType":"uint256[]","name":"_kingsGalaIDs","type":"uint256[]"},{"internalType":"address","name":"_to","type":"address"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"genesisIDClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"incooomGenesis","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kingPerGala","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kingPerGenesis","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kingToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kingsGala","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"kingsGalaIDClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6101006040523480156200001257600080fd5b50604051620011f5380380620011f583398181016040528101906200003891906200017c565b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508273ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff168152505050505050620001ee565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001448262000117565b9050919050565b620001568162000137565b81146200016257600080fd5b50565b60008151905062000176816200014b565b92915050565b6000806000806080858703121562000199576200019862000112565b5b6000620001a98782880162000165565b9450506020620001bc8782880162000165565b9350506040620001cf8782880162000165565b9250506060620001e28782880162000165565b91505092959194509250565b60805160a05160c05160e051610fb162000244600039600081816102ec01526103810152600081816101f1015261066f01526000818161035d015261045c015260008181610222015261029d0152610fb16000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80639b0ee389116100665780639b0ee38914610137578063a49f295614610167578063ad91d50314610185578063f2e1253a146101b5578063f5537ede146101d35761009e565b8063149ab630146100a35780635ab998d3146100c15780635d3546ae146100df578063742dd87a146100fd5780638da5cb5b14610119575b600080fd5b6100ab6101ef565b6040516100b891906109f1565b60405180910390f35b6100c9610213565b6040516100d69190610a25565b60405180910390f35b6100e7610220565b6040516100f491906109f1565b60405180910390f35b61011760048036038101906101129190610adb565b610244565b005b6101216102ea565b60405161012e91906109f1565b60405180910390f35b610151600480360381019061014c9190610b9c565b61030e565b60405161015e9190610be4565b60405180910390f35b61016f61032e565b60405161017c9190610a25565b60405180910390f35b61019f600480360381019061019a9190610b9c565b61033b565b6040516101ac9190610be4565b60405180910390f35b6101bd61035b565b6040516101ca91906109f1565b60405180910390f35b6101ed60048036038101906101e89190610bff565b61037f565b005b7f000000000000000000000000000000000000000000000000000000000000000081565b68c80909798ac768000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000808686905011156102695761025b8686610434565b816102669190610c81565b90505b600084849050111561028d5761027f8484610647565b8161028a9190610c81565b90505b60008111156102e2576102e182827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661085b9092919063ffffffff16565b5b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60016020528060005260406000206000915054906101000a900460ff1681565b68b4aeaab10258f4000081565b60006020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610404576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61042f82828573ffffffffffffffffffffffffffffffffffffffff1661085b9092919063ffffffff16565b505050565b6000805b83839050811015610626573373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636352211e8686858181106104a9576104a8610cd7565b5b905060200201356040518263ffffffff1660e01b81526004016104cc9190610a25565b602060405180830381865afa1580156104e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050d9190610d1b565b73ffffffffffffffffffffffffffffffffffffffff161461055a576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001151560008086868581811061057457610573610cd7565b5b90506020020135815260200190815260200160002060009054906101000a900460ff16151514156105d1576040517fabb282f100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016000808686858181106105e9576105e8610cd7565b5b90506020020135815260200190815260200160002060006101000a81548160ff0219169083151502179055508061061f90610d48565b9050610438565b508282905068b4aeaab10258f4000061063f9190610d91565b905092915050565b6000805b8383905081101561083a573373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636352211e8686858181106106bc576106bb610cd7565b5b905060200201356040518263ffffffff1660e01b81526004016106df9190610a25565b602060405180830381865afa1580156106fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107209190610d1b565b73ffffffffffffffffffffffffffffffffffffffff161461076d576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600115156001600086868581811061078857610787610cd7565b5b90506020020135815260200190815260200160002060009054906101000a900460ff16151514156107e5576040517fabb282f100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018060008686858181106107fd576107fc610cd7565b5b90506020020135815260200190815260200160002060006101000a81548160ff0219169083151502179055508061083390610d48565b905061064b565b508282905068c80909798ac76800006108539190610d91565b905092915050565b6000808473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b8585604051602401610890929190610deb565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516108fa9190610e8e565b6000604051808303816000865af19150503d8060008114610937576040519150601f19603f3d011682016040523d82523d6000602084013e61093c565b606091505b509150915081801561096a57506000815114806109695750808060200190518101906109689190610ed1565b5b5b6109a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a090610f5b565b60405180910390fd5b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109db826109b0565b9050919050565b6109eb816109d0565b82525050565b6000602082019050610a0660008301846109e2565b92915050565b6000819050919050565b610a1f81610a0c565b82525050565b6000602082019050610a3a6000830184610a16565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610a6f57610a6e610a4a565b5b8235905067ffffffffffffffff811115610a8c57610a8b610a4f565b5b602083019150836020820283011115610aa857610aa7610a54565b5b9250929050565b610ab8816109d0565b8114610ac357600080fd5b50565b600081359050610ad581610aaf565b92915050565b600080600080600060608688031215610af757610af6610a40565b5b600086013567ffffffffffffffff811115610b1557610b14610a45565b5b610b2188828901610a59565b9550955050602086013567ffffffffffffffff811115610b4457610b43610a45565b5b610b5088828901610a59565b93509350506040610b6388828901610ac6565b9150509295509295909350565b610b7981610a0c565b8114610b8457600080fd5b50565b600081359050610b9681610b70565b92915050565b600060208284031215610bb257610bb1610a40565b5b6000610bc084828501610b87565b91505092915050565b60008115159050919050565b610bde81610bc9565b82525050565b6000602082019050610bf96000830184610bd5565b92915050565b600080600060608486031215610c1857610c17610a40565b5b6000610c2686828701610ac6565b9350506020610c3786828701610ac6565b9250506040610c4886828701610b87565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610c8c82610a0c565b9150610c9783610a0c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610ccc57610ccb610c52565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050610d1581610aaf565b92915050565b600060208284031215610d3157610d30610a40565b5b6000610d3f84828501610d06565b91505092915050565b6000610d5382610a0c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610d8657610d85610c52565b5b600182019050919050565b6000610d9c82610a0c565b9150610da783610a0c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610de057610ddf610c52565b5b828202905092915050565b6000604082019050610e0060008301856109e2565b610e0d6020830184610a16565b9392505050565b600081519050919050565b600081905092915050565b60005b83811015610e48578082015181840152602081019050610e2d565b83811115610e57576000848401525b50505050565b6000610e6882610e14565b610e728185610e1f565b9350610e82818560208601610e2a565b80840191505092915050565b6000610e9a8284610e5d565b915081905092915050565b610eae81610bc9565b8114610eb957600080fd5b50565b600081519050610ecb81610ea5565b92915050565b600060208284031215610ee757610ee6610a40565b5b6000610ef584828501610ebc565b91505092915050565b600082825260208201905092915050565b7f5452414e534645525f4641494c45440000000000000000000000000000000000600082015250565b6000610f45600f83610efe565b9150610f5082610f0f565b602082019050919050565b60006020820190508181036000830152610f7481610f38565b905091905056fea2646970667358221220e5b73b44d8be0bb539f34fc1b04b03a736f15e2a8ff521789ba4c7fffbb9ff1e64736f6c634300080a0033000000000000000000000000002cdebfce2f5e3fd704da0fa346ad2621353b92000000000000000000000000906642380fd9b7aa726bce9c6abee7378396061b00000000000000000000000089633c73096d2150673c9edc7bb5f24db5dc222c00000000000000000000000069be605fc59c6767ca401e697d9be7c82960e7d6

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061009e5760003560e01c80639b0ee389116100665780639b0ee38914610137578063a49f295614610167578063ad91d50314610185578063f2e1253a146101b5578063f5537ede146101d35761009e565b8063149ab630146100a35780635ab998d3146100c15780635d3546ae146100df578063742dd87a146100fd5780638da5cb5b14610119575b600080fd5b6100ab6101ef565b6040516100b891906109f1565b60405180910390f35b6100c9610213565b6040516100d69190610a25565b60405180910390f35b6100e7610220565b6040516100f491906109f1565b60405180910390f35b61011760048036038101906101129190610adb565b610244565b005b6101216102ea565b60405161012e91906109f1565b60405180910390f35b610151600480360381019061014c9190610b9c565b61030e565b60405161015e9190610be4565b60405180910390f35b61016f61032e565b60405161017c9190610a25565b60405180910390f35b61019f600480360381019061019a9190610b9c565b61033b565b6040516101ac9190610be4565b60405180910390f35b6101bd61035b565b6040516101ca91906109f1565b60405180910390f35b6101ed60048036038101906101e89190610bff565b61037f565b005b7f00000000000000000000000089633c73096d2150673c9edc7bb5f24db5dc222c81565b68c80909798ac768000081565b7f000000000000000000000000002cdebfce2f5e3fd704da0fa346ad2621353b9281565b6000808686905011156102695761025b8686610434565b816102669190610c81565b90505b600084849050111561028d5761027f8484610647565b8161028a9190610c81565b90505b60008111156102e2576102e182827f000000000000000000000000002cdebfce2f5e3fd704da0fa346ad2621353b9273ffffffffffffffffffffffffffffffffffffffff1661085b9092919063ffffffff16565b5b505050505050565b7f00000000000000000000000069be605fc59c6767ca401e697d9be7c82960e7d681565b60016020528060005260406000206000915054906101000a900460ff1681565b68b4aeaab10258f4000081565b60006020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000906642380fd9b7aa726bce9c6abee7378396061b81565b7f00000000000000000000000069be605fc59c6767ca401e697d9be7c82960e7d673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610404576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61042f82828573ffffffffffffffffffffffffffffffffffffffff1661085b9092919063ffffffff16565b505050565b6000805b83839050811015610626573373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000906642380fd9b7aa726bce9c6abee7378396061b73ffffffffffffffffffffffffffffffffffffffff16636352211e8686858181106104a9576104a8610cd7565b5b905060200201356040518263ffffffff1660e01b81526004016104cc9190610a25565b602060405180830381865afa1580156104e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050d9190610d1b565b73ffffffffffffffffffffffffffffffffffffffff161461055a576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001151560008086868581811061057457610573610cd7565b5b90506020020135815260200190815260200160002060009054906101000a900460ff16151514156105d1576040517fabb282f100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016000808686858181106105e9576105e8610cd7565b5b90506020020135815260200190815260200160002060006101000a81548160ff0219169083151502179055508061061f90610d48565b9050610438565b508282905068b4aeaab10258f4000061063f9190610d91565b905092915050565b6000805b8383905081101561083a573373ffffffffffffffffffffffffffffffffffffffff167f00000000000000000000000089633c73096d2150673c9edc7bb5f24db5dc222c73ffffffffffffffffffffffffffffffffffffffff16636352211e8686858181106106bc576106bb610cd7565b5b905060200201356040518263ffffffff1660e01b81526004016106df9190610a25565b602060405180830381865afa1580156106fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107209190610d1b565b73ffffffffffffffffffffffffffffffffffffffff161461076d576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600115156001600086868581811061078857610787610cd7565b5b90506020020135815260200190815260200160002060009054906101000a900460ff16151514156107e5576040517fabb282f100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018060008686858181106107fd576107fc610cd7565b5b90506020020135815260200190815260200160002060006101000a81548160ff0219169083151502179055508061083390610d48565b905061064b565b508282905068c80909798ac76800006108539190610d91565b905092915050565b6000808473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b8585604051602401610890929190610deb565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516108fa9190610e8e565b6000604051808303816000865af19150503d8060008114610937576040519150601f19603f3d011682016040523d82523d6000602084013e61093c565b606091505b509150915081801561096a57506000815114806109695750808060200190518101906109689190610ed1565b5b5b6109a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a090610f5b565b60405180910390fd5b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109db826109b0565b9050919050565b6109eb816109d0565b82525050565b6000602082019050610a0660008301846109e2565b92915050565b6000819050919050565b610a1f81610a0c565b82525050565b6000602082019050610a3a6000830184610a16565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610a6f57610a6e610a4a565b5b8235905067ffffffffffffffff811115610a8c57610a8b610a4f565b5b602083019150836020820283011115610aa857610aa7610a54565b5b9250929050565b610ab8816109d0565b8114610ac357600080fd5b50565b600081359050610ad581610aaf565b92915050565b600080600080600060608688031215610af757610af6610a40565b5b600086013567ffffffffffffffff811115610b1557610b14610a45565b5b610b2188828901610a59565b9550955050602086013567ffffffffffffffff811115610b4457610b43610a45565b5b610b5088828901610a59565b93509350506040610b6388828901610ac6565b9150509295509295909350565b610b7981610a0c565b8114610b8457600080fd5b50565b600081359050610b9681610b70565b92915050565b600060208284031215610bb257610bb1610a40565b5b6000610bc084828501610b87565b91505092915050565b60008115159050919050565b610bde81610bc9565b82525050565b6000602082019050610bf96000830184610bd5565b92915050565b600080600060608486031215610c1857610c17610a40565b5b6000610c2686828701610ac6565b9350506020610c3786828701610ac6565b9250506040610c4886828701610b87565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610c8c82610a0c565b9150610c9783610a0c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610ccc57610ccb610c52565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050610d1581610aaf565b92915050565b600060208284031215610d3157610d30610a40565b5b6000610d3f84828501610d06565b91505092915050565b6000610d5382610a0c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610d8657610d85610c52565b5b600182019050919050565b6000610d9c82610a0c565b9150610da783610a0c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610de057610ddf610c52565b5b828202905092915050565b6000604082019050610e0060008301856109e2565b610e0d6020830184610a16565b9392505050565b600081519050919050565b600081905092915050565b60005b83811015610e48578082015181840152602081019050610e2d565b83811115610e57576000848401525b50505050565b6000610e6882610e14565b610e728185610e1f565b9350610e82818560208601610e2a565b80840191505092915050565b6000610e9a8284610e5d565b915081905092915050565b610eae81610bc9565b8114610eb957600080fd5b50565b600081519050610ecb81610ea5565b92915050565b600060208284031215610ee757610ee6610a40565b5b6000610ef584828501610ebc565b91505092915050565b600082825260208201905092915050565b7f5452414e534645525f4641494c45440000000000000000000000000000000000600082015250565b6000610f45600f83610efe565b9150610f5082610f0f565b602082019050919050565b60006020820190508181036000830152610f7481610f38565b905091905056fea2646970667358221220e5b73b44d8be0bb539f34fc1b04b03a736f15e2a8ff521789ba4c7fffbb9ff1e64736f6c634300080a0033

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

000000000000000000000000002cdebfce2f5e3fd704da0fa346ad2621353b92000000000000000000000000906642380fd9b7aa726bce9c6abee7378396061b00000000000000000000000089633c73096d2150673c9edc7bb5f24db5dc222c00000000000000000000000069be605fc59c6767ca401e697d9be7c82960e7d6

-----Decoded View---------------
Arg [0] : _kingToken (address): 0x002CdEbFCE2F5E3FD704DA0fa346Ad2621353B92
Arg [1] : _incoomGenesis (address): 0x906642380fD9B7AA726BCe9c6AbeE7378396061B
Arg [2] : _kingsGala (address): 0x89633c73096d2150673C9EDc7bB5f24DB5dc222C
Arg [3] : _owner (address): 0x69bE605fc59C6767CA401E697D9bE7C82960e7D6

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000002cdebfce2f5e3fd704da0fa346ad2621353b92
Arg [1] : 000000000000000000000000906642380fd9b7aa726bce9c6abee7378396061b
Arg [2] : 00000000000000000000000089633c73096d2150673c9edc7bb5f24db5dc222c
Arg [3] : 00000000000000000000000069be605fc59c6767ca401e697d9be7c82960e7d6


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  ]

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.