ETH Price: $2,642.10 (-0.35%)

Contract

0xF6db17228226465c99FE09fe36d5e5Bee438be3F
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Pause135765362021-11-08 15:19:131076 days ago1636384753IN
0xF6db1722...ee438be3F
0 ETH0.00351309115.15693932
Buy Batch92917702020-01-16 10:50:431738 days ago1579171843IN
0xF6db1722...ee438be3F
0.01766 ETH0.000456521
Buy Batch87401102019-10-14 14:55:411832 days ago1571064941IN
0xF6db1722...ee438be3F
0 ETH0.003959881
Buy Batch87401052019-10-14 14:54:441832 days ago1571064884IN
0xF6db1722...ee438be3F
0 ETH0.000452081
Buy Batch87400972019-10-14 14:53:321832 days ago1571064812IN
0xF6db1722...ee438be3F
0 ETH0.003899881.000001
Add Credits87400572019-10-14 14:45:441832 days ago1571064344IN
0xF6db1722...ee438be3F
0 ETH0.00004581
Buy Batch86751652019-10-04 10:41:591842 days ago1570185719IN
0xF6db1722...ee438be3F
0 ETH0.002887251.111
Buy Batch86751272019-10-04 10:32:501842 days ago1570185170IN
0xF6db1722...ee438be3F
0 ETH0.000513791.1
Buy Batch85421552019-09-13 15:39:561863 days ago1568389196IN
0xF6db1722...ee438be3F
0 ETH0.0131028510
Buy Batch85420212019-09-13 15:07:521863 days ago1568387272IN
0xF6db1722...ee438be3F
0 ETH0.0056050212
Buy Batch85420152019-09-13 15:06:331863 days ago1568387193IN
0xF6db1722...ee438be3F
0 ETH0.009341720
Buy Batch85419912019-09-13 14:59:061863 days ago1568386746IN
0xF6db1722...ee438be3F
0 ETH0.0046708510
Add Credits85419252019-09-13 14:45:531863 days ago1568385953IN
0xF6db1722...ee438be3F
0 ETH0.0005541812.1
Add Credits85419252019-09-13 14:45:531863 days ago1568385953IN
0xF6db1722...ee438be3F
0 ETH0.0005541812.1
Add Credits85419252019-09-13 14:45:531863 days ago1568385953IN
0xF6db1722...ee438be3F
0 ETH0.0005541812.1
Add Credits85419252019-09-13 14:45:531863 days ago1568385953IN
0xF6db1722...ee438be3F
0 ETH0.0005541812.1
Buy Batch80389632019-06-27 8:38:291941 days ago1561624709IN
0xF6db1722...ee438be3F
0.01766 ETH0.0049818810
Buy Batch79897512019-06-19 16:18:311949 days ago1560961111IN
0xF6db1722...ee438be3F
0 ETH0.005301144
Buy Batch79588912019-06-14 20:30:571953 days ago1560544257IN
0xF6db1722...ee438be3F
0.01766 ETH0.004572759.9
Buy Batch79544822019-06-14 3:54:461954 days ago1560484486IN
0xF6db1722...ee438be3F
0.01766 ETH0.001195652.4
Buy Batch79523462019-06-13 19:58:521954 days ago1560455932IN
0xF6db1722...ee438be3F
0.04116 ETH0.005485554
Buy Batch79390552019-06-11 18:02:251957 days ago1560276145IN
0xF6db1722...ee438be3F
0 ETH0.004600873.43275862
Buy Batch79003782019-06-05 16:50:241963 days ago1559753424IN
0xF6db1722...ee438be3F
0.01766 ETH0.000996372
Buy Batch78940932019-06-04 17:09:471964 days ago1559668187IN
0xF6db1722...ee438be3F
0.01766 ETH0.001449563
Buy Batch78873352019-06-03 15:52:141965 days ago1559577134IN
0xF6db1722...ee438be3F
0.01766 ETH0.001494563
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
92917702020-01-16 10:50:431738 days ago1579171843
0xF6db1722...ee438be3F
0.0164238 ETH
92917702020-01-16 10:50:431738 days ago1579171843
0xF6db1722...ee438be3F
0.0012362 ETH
80389632019-06-27 8:38:291941 days ago1561624709
0xF6db1722...ee438be3F
0.0164238 ETH
80389632019-06-27 8:38:291941 days ago1561624709
0xF6db1722...ee438be3F
0.0012362 ETH
79588912019-06-14 20:30:571953 days ago1560544257
0xF6db1722...ee438be3F
0.0164238 ETH
79588912019-06-14 20:30:571953 days ago1560544257
0xF6db1722...ee438be3F
0.0012362 ETH
79544822019-06-14 3:54:461954 days ago1560484486
0xF6db1722...ee438be3F
0.0164238 ETH
79544822019-06-14 3:54:461954 days ago1560484486
0xF6db1722...ee438be3F
0.0012362 ETH
79523462019-06-13 19:58:521954 days ago1560455932
0xF6db1722...ee438be3F
0.0382788 ETH
79523462019-06-13 19:58:521954 days ago1560455932
0xF6db1722...ee438be3F
0.0028812 ETH
79003782019-06-05 16:50:241963 days ago1559753424
0xF6db1722...ee438be3F
0.0164238 ETH
79003782019-06-05 16:50:241963 days ago1559753424
0xF6db1722...ee438be3F
0.0012362 ETH
78940932019-06-04 17:09:471964 days ago1559668187
0xF6db1722...ee438be3F
0.0164238 ETH
78940932019-06-04 17:09:471964 days ago1559668187
0xF6db1722...ee438be3F
0.0012362 ETH
78873352019-06-03 15:52:141965 days ago1559577134
0xF6db1722...ee438be3F
0.0164238 ETH
78873352019-06-03 15:52:141965 days ago1559577134
0xF6db1722...ee438be3F
0.0012362 ETH
78608022019-05-30 12:02:441969 days ago1559217764
0xF6db1722...ee438be3F
0.0164238 ETH
78608022019-05-30 12:02:441969 days ago1559217764
0xF6db1722...ee438be3F
0.0012362 ETH
78557222019-05-29 16:59:231970 days ago1559149163
0xF6db1722...ee438be3F
0.0164238 ETH
78557222019-05-29 16:59:231970 days ago1559149163
0xF6db1722...ee438be3F
0.0012362 ETH
78295052019-05-25 15:11:011974 days ago1558797061
0xF6db1722...ee438be3F
0.0382788 ETH
78295052019-05-25 15:11:011974 days ago1558797061
0xF6db1722...ee438be3F
0.0028812 ETH
77774172019-05-17 11:15:361982 days ago1558091736
0xF6db1722...ee438be3F
0.0382788 ETH
77774172019-05-17 11:15:361982 days ago1558091736
0xF6db1722...ee438be3F
0.0028812 ETH
77719562019-05-16 14:59:001983 days ago1558018740
0xF6db1722...ee438be3F
0.0164238 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
NiftyFootballTradingCardBlindPack

Compiler Version
v0.5.0+commit.1d4f565a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-05-04
*/

// File: openzeppelin-solidity/contracts/ownership/Ownable.sol

pragma solidity ^0.5.0;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address private _owner;

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

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor () internal {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner());
        _;
    }

    /**
     * @return true if `msg.sender` is the owner of the contract.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    /**
     * @dev Allows the current owner to relinquish control of the contract.
     * @notice Renouncing to ownership will leave the contract without an owner.
     * It will not be possible to call the functions with the `onlyOwner`
     * modifier anymore.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// File: openzeppelin-solidity/contracts/math/SafeMath.sol

pragma solidity ^0.5.0;

/**
 * @title SafeMath
 * @dev Unsigned math operations with safety checks that revert on error
 */
library SafeMath {
    /**
    * @dev Multiplies two unsigned integers, reverts on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (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-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b);

        return c;
    }

    /**
    * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
    * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    /**
    * @dev Adds two unsigned integers, reverts on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }

    /**
    * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
    * reverts when dividing by zero.
    */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}

// File: openzeppelin-solidity/contracts/access/Roles.sol

pragma solidity ^0.5.0;

/**
 * @title Roles
 * @dev Library for managing addresses assigned to a Role.
 */
library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    /**
     * @dev give an account access to this role
     */
    function add(Role storage role, address account) internal {
        require(account != address(0));
        require(!has(role, account));

        role.bearer[account] = true;
    }

    /**
     * @dev remove an account's access to this role
     */
    function remove(Role storage role, address account) internal {
        require(account != address(0));
        require(has(role, account));

        role.bearer[account] = false;
    }

    /**
     * @dev check if an account has this role
     * @return bool
     */
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0));
        return role.bearer[account];
    }
}

// File: openzeppelin-solidity/contracts/access/roles/PauserRole.sol

pragma solidity ^0.5.0;


contract PauserRole {
    using Roles for Roles.Role;

    event PauserAdded(address indexed account);
    event PauserRemoved(address indexed account);

    Roles.Role private _pausers;

    constructor () internal {
        _addPauser(msg.sender);
    }

    modifier onlyPauser() {
        require(isPauser(msg.sender));
        _;
    }

    function isPauser(address account) public view returns (bool) {
        return _pausers.has(account);
    }

    function addPauser(address account) public onlyPauser {
        _addPauser(account);
    }

    function renouncePauser() public {
        _removePauser(msg.sender);
    }

    function _addPauser(address account) internal {
        _pausers.add(account);
        emit PauserAdded(account);
    }

    function _removePauser(address account) internal {
        _pausers.remove(account);
        emit PauserRemoved(account);
    }
}

// File: openzeppelin-solidity/contracts/lifecycle/Pausable.sol

pragma solidity ^0.5.0;


/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is PauserRole {
    event Paused(address account);
    event Unpaused(address account);

    bool private _paused;

    constructor () internal {
        _paused = false;
    }

    /**
     * @return true if the contract is paused, false otherwise.
     */
    function paused() public view returns (bool) {
        return _paused;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(!_paused);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     */
    modifier whenPaused() {
        require(_paused);
        _;
    }

    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() public onlyPauser whenNotPaused {
        _paused = true;
        emit Paused(msg.sender);
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() public onlyPauser whenPaused {
        _paused = false;
        emit Unpaused(msg.sender);
    }
}

// File: contracts/libs/Strings.sol

pragma solidity 0.5.0;

library Strings {

    // via https://github.com/oraclize/ethereum-api/blob/master/oraclizeAPI_0.5.sol
    function strConcat(string memory _a, string memory _b, string memory _c, string memory _d, string memory _e) internal pure returns (string memory _concatenatedString) {
        bytes memory _ba = bytes(_a);
        bytes memory _bb = bytes(_b);
        bytes memory _bc = bytes(_c);
        bytes memory _bd = bytes(_d);
        bytes memory _be = bytes(_e);
        string memory abcde = new string(_ba.length + _bb.length + _bc.length + _bd.length + _be.length);
        bytes memory babcde = bytes(abcde);
        uint k = 0;
        uint i = 0;
        for (i = 0; i < _ba.length; i++) {
            babcde[k++] = _ba[i];
        }
        for (i = 0; i < _bb.length; i++) {
            babcde[k++] = _bb[i];
        }
        for (i = 0; i < _bc.length; i++) {
            babcde[k++] = _bc[i];
        }
        for (i = 0; i < _bd.length; i++) {
            babcde[k++] = _bd[i];
        }
        for (i = 0; i < _be.length; i++) {
            babcde[k++] = _be[i];
        }
        return string(babcde);
    }

    function strConcat(string memory _a, string memory _b) internal pure returns (string memory) {
        return strConcat(_a, _b, "", "", "");
    }

    function strConcat(string memory _a, string memory _b, string memory _c) internal pure returns (string memory) {
        return strConcat(_a, _b, _c, "", "");
    }

    function uint2str(uint _i) internal pure returns (string memory _uintAsString) {
        if (_i == 0) {
            return "0";
        }
        uint j = _i;
        uint len;
        while (j != 0) {
            len++;
            j /= 10;
        }
        bytes memory bstr = new bytes(len);
        uint k = len - 1;
        while (_i != 0) {
            bstr[k--] = byte(uint8(48 + _i % 10));
            _i /= 10;
        }
        return string(bstr);
    }
}

// File: contracts/INiftyTradingCardCreator.sol

pragma solidity 0.5.0;

interface INiftyTradingCardCreator {
    function mintCard(
        uint256 _cardType,
        uint256 _nationality,
        uint256 _position,
        uint256 _ethnicity,
        uint256 _kit,
        uint256 _colour,
        address _to
    ) external returns (uint256 _tokenId);

    function setAttributes(
        uint256 _tokenId,
        uint256 _strength,
        uint256 _speed,
        uint256 _intelligence,
        uint256 _skill
    ) external returns (bool);

    function setName(
        uint256 _tokenId,
        uint256 _firstName,
        uint256 _lastName
    ) external returns (bool);

    function setAttributesAndName(
        uint256 _tokenId,
        uint256 _strength,
        uint256 _speed,
        uint256 _intelligence,
        uint256 _skill,
        uint256 _firstName,
        uint256 _lastName
    ) external returns (bool);
}

// File: contracts/generators/INiftyFootballTradingCardGenerator.sol

pragma solidity 0.5.0;

contract INiftyFootballTradingCardGenerator {
    function generateCard(address _sender) external returns (uint256 _nationality, uint256 _position, uint256 _ethnicity, uint256 _kit, uint256 _colour);

    function generateAttributes(address _sender, uint256 _base) external returns (uint256 strength, uint256 speed, uint256 intelligence, uint256 skill);

    function generateName(address _sender) external returns (uint256 firstName, uint256 lastName);
}

// File: contracts/FundsSplitter.sol

pragma solidity ^0.5.0;



contract FundsSplitter is Ownable {
    using SafeMath for uint256;

    address payable public platform;
    address payable public partner;

    uint256 public partnerRate = 7;

    constructor (address payable _platform, address payable _partner) public {
        platform = _platform;
        partner = _partner;
    }

    function splitFunds(uint256 _totalPrice) internal {
        if (msg.value > 0) {
            uint256 refund = msg.value.sub(_totalPrice);

            // overpaid...
            if (refund > 0) {
                msg.sender.transfer(refund);
            }

            // work out the amount to split and send it
            uint256 partnerAmount = _totalPrice.div(100).mul(partnerRate);
            partner.transfer(partnerAmount);

            // send remaining amount to partner wallet
            uint256 remaining = _totalPrice.sub(partnerAmount);
            platform.transfer(remaining);
        }
    }

    function updatePartnerAddress(address payable _partner) onlyOwner public {
        partner = _partner;
    }

    function updatePartnerRate(uint256 _techPartnerRate) onlyOwner public {
        partnerRate = _techPartnerRate;
    }

    function updatePlatformAddress(address payable _platform) onlyOwner public {
        platform = _platform;
    }

    function withdraw() public onlyOwner returns (bool) {
        platform.transfer(address(this).balance);
        return true;
    }
}

// File: contracts/NiftyFootballTradingCardBlindPack.sol

pragma solidity 0.5.0;









contract NiftyFootballTradingCardBlindPack is Ownable, Pausable, FundsSplitter {
    using SafeMath for uint256;

    event PriceInWeiChanged(uint256 _old, uint256 _new);

    event CreditAdded(address indexed _to);

    event DefaultCardTypeChanged(uint256 _new);

    event AttributesBaseChanged(uint256 _new);

    event FutballCardsGeneratorChanged(INiftyFootballTradingCardGenerator _new);

    INiftyFootballTradingCardGenerator public generator;
    INiftyTradingCardCreator public creator;

    mapping(address => uint256) public credits;

    uint256 public totalPurchasesInWei = 0;
    uint256 public cardTypeDefault = 0;
    uint256 public attributesBase = 40; // Standard 40-100

    uint256[] public pricePerCard = [
    // single cards
    11000000000000000, // 1 @ = 0.011 ETH / $1.75
    11000000000000000, // 2 @ = 0.011 ETH / $1.75

    // 1 packs
    10000000000000000, //  3 @ = 0.01 ETH / $1.59
    10000000000000000, //  4 @ = 0.01 ETH / $1.59
    10000000000000000, //  5 @ = 0.01 ETH / $1.59

    // 2 packs
    9100000000000000, //  6 @ = 0.0091 ETH / $1.45
    9100000000000000, //  7 @ = 0.0091 ETH / $1.45
    9100000000000000, //  8 @ = 0.0091 ETH / $1.45

    // 3 packs or more
    8500000000000000, //  9 @ = 0.0085 ETH / $1.35
    8500000000000000 //  10 @ = 0.0085 ETH / $1.35
    ];

    constructor (
        address payable _wallet,
        address payable _partnerAddress,
        INiftyFootballTradingCardGenerator _generator,
        INiftyTradingCardCreator _creator
    ) FundsSplitter(_wallet, _partnerAddress) public {
        generator = _generator;
        creator = _creator;
    }

    function blindPack() whenNotPaused public payable {
        blindPackTo(msg.sender);
    }

    function blindPackTo(address _to) whenNotPaused public payable {
        uint256 _totalPrice = totalPrice(1);
        require(
            credits[msg.sender] > 0 || msg.value >= _totalPrice,
            "Must supply at least the required minimum purchase value or have credit"
        );
        require(!isContract(msg.sender), "Unable to buy packs from another contract");

        _generateAndAssignCard(_to);

        _takePayment(1, _totalPrice);
    }

    function buyBatch(uint256 _numberOfCards) whenNotPaused public payable {
        return buyBatchTo(msg.sender, _numberOfCards);
    }

    function buyBatchTo(address _to, uint256 _numberOfCards) whenNotPaused public payable {
        uint256 _totalPrice = totalPrice(_numberOfCards);
        require(
            credits[msg.sender] >= _numberOfCards || msg.value >= _totalPrice,
            "Must supply at least the required minimum purchase value or have credit"
        );
        require(!isContract(msg.sender), "Unable to buy packs from another contract");

        for (uint i = 0; i < _numberOfCards; i++) {
            _generateAndAssignCard(_to);
        }

        _takePayment(_numberOfCards, _totalPrice);
    }

    function _generateAndAssignCard(address _to) internal {
        // Generate card
        (uint256 _nationality, uint256 _position, uint256 _ethnicity, uint256 _kit, uint256 _colour) = generator.generateCard(msg.sender);

        // cardType is 0 for genesis (initially)
        uint256 tokenId = creator.mintCard(cardTypeDefault, _nationality, _position, _ethnicity, _kit, _colour, _to);

        // Generate attributes
        (uint256 _strength, uint256 _speed, uint256 _intelligence, uint256 _skill) = generator.generateAttributes(msg.sender, attributesBase);
        (uint256 _firstName, uint256 _lastName) = generator.generateName(msg.sender);

        creator.setAttributesAndName(tokenId, _strength, _speed, _intelligence, _skill, _firstName, _lastName);
    }

    function _takePayment(uint256 _numberOfCards, uint256 _totalPrice) internal {
        // use credits first
        if (credits[msg.sender] >= _numberOfCards) {
            credits[msg.sender] = credits[msg.sender].sub(_numberOfCards);

            // Refund any accidentally ETH
            if (msg.value > 0) {
                msg.sender.transfer(msg.value);
            }
        } else {
            // any trapped ether can be withdrawn with withdraw()
            totalPurchasesInWei = totalPurchasesInWei.add(_totalPrice);
            splitFunds(_totalPrice);
        }
    }

    function setCardTypeDefault(uint256 _newDefaultCardType) public onlyOwner returns (bool) {
        cardTypeDefault = _newDefaultCardType;

        emit DefaultCardTypeChanged(_newDefaultCardType);

        return true;
    }

    function setAttributesBase(uint256 _newAttributesBase) public onlyOwner returns (bool) {
        attributesBase = _newAttributesBase;

        emit AttributesBaseChanged(_newAttributesBase);

        return true;
    }

    function setFutballCardsGenerator(INiftyFootballTradingCardGenerator _futballCardsGenerator) public onlyOwner returns (bool) {
        generator = _futballCardsGenerator;

        emit FutballCardsGeneratorChanged(_futballCardsGenerator);

        return true;
    }

    function updatePricePerCardAtIndex(uint256 _index, uint256 _priceInWei) public onlyOwner returns (bool) {
        pricePerCard[_index] = _priceInWei;
        return true;
    }

    function updatePricePerCard(uint256[] memory _pricePerCard) public onlyOwner returns (bool) {
        pricePerCard = _pricePerCard;
        return true;
    }

    function addCredit(address _to) public onlyOwner returns (bool) {
        credits[_to] = credits[_to].add(1);

        emit CreditAdded(_to);

        return true;
    }

    function addCredits(address _to, uint256 _creditsToAdd) public onlyOwner returns (bool) {
        credits[_to] = credits[_to].add(_creditsToAdd);

        emit CreditAdded(_to);

        return true;
    }

    function totalPrice(uint256 _numberOfCards) public view returns (uint256) {
        if (_numberOfCards > pricePerCard.length) {
            return pricePerCard[pricePerCard.length - 1].mul(_numberOfCards);
        }
        return pricePerCard[_numberOfCards - 1].mul(_numberOfCards);
    }

    /**
     * Returns whether the target address is a contract
     * Based on OpenZeppelin Address library
     * @dev This function will return false if invoked during the constructor of a contract,
     * as the code is not actually created until after the constructor finishes.
     * @param account address of the account to check
     * @return whether the target address is a contract
     */
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        // XXX Currently there is no better way to check if there is a contract in an address
        // than to check the size of the code at that address.
        // See https://ethereum.stackexchange.com/a/14016/36603
        // for more details about how this works.
        // contracts then.
        // solhint-disable-next-line no-inline-assembly
        assembly {size := extcodesize(account)}
        return size > 0;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"creator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"blindPackTo","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"pricePerCard","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_numberOfCards","type":"uint256"}],"name":"totalPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAttributesBase","type":"uint256"}],"name":"setAttributesBase","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_futballCardsGenerator","type":"address"}],"name":"setFutballCardsGenerator","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_pricePerCard","type":"uint256[]"}],"name":"updatePricePerCard","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_partner","type":"address"}],"name":"updatePartnerAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isPauser","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"platform","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalPurchasesInWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"attributesBase","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_techPartnerRate","type":"uint256"}],"name":"updatePartnerRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_numberOfCards","type":"uint256"}],"name":"buyBatch","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"generator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"addCredit","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_numberOfCards","type":"uint256"}],"name":"buyBatchTo","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_creditsToAdd","type":"uint256"}],"name":"addCredits","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_platform","type":"address"}],"name":"updatePlatformAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"cardTypeDefault","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"partnerRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"partner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newDefaultCardType","type":"uint256"}],"name":"setCardTypeDefault","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"blindPack","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"credits","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_index","type":"uint256"},{"name":"_priceInWei","type":"uint256"}],"name":"updatePricePerCardAtIndex","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_wallet","type":"address"},{"name":"_partnerAddress","type":"address"},{"name":"_generator","type":"address"},{"name":"_creator","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_old","type":"uint256"},{"indexed":false,"name":"_new","type":"uint256"}],"name":"PriceInWeiChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"}],"name":"CreditAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_new","type":"uint256"}],"name":"DefaultCardTypeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_new","type":"uint256"}],"name":"AttributesBaseChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_new","type":"address"}],"name":"FutballCardsGeneratorChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserRemoved","type":"event"}]

6007600455600060088190556009556028600a9081556101c06040526627147114878000608081815260a091909152662386f26fc1000060c081905260e08190526101005266205466db74c00061012081905261014081905261016052661e32b4789740006101808190526101a0526200007d91600b91906200026f565b503480156200008b57600080fd5b5060405160808062001c6583398101806040526080811015620000ad57600080fd5b50805160208201516040830151606090930151919290918383620000da336401000000006200018a810204565b60018054600160a060020a031916331790819055604051600160a060020a0391909116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36001805460a060020a60ff021916905560028054600160a060020a0319908116600160a060020a0394851617909155600380548216928416929092179091556005805482169483169490941790935560068054909316911617905550620002ea9050565b620001a560008264010000000062001868620001dc82021704565b604051600160a060020a038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b600160a060020a0381161515620001f257600080fd5b62000207828264010000000062000237810204565b156200021257600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200024f57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b828054828255906000526020600020908101928215620002b8579160200282015b82811115620002b8578251829066ffffffffffffff1690559160200191906001019062000290565b50620002c6929150620002ca565b5090565b620002e791905b80821115620002c65760008155600101620002d1565b90565b61196b80620002fa6000396000f3fe6080604052600436106101c15763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302d05d3f81146101c65780631184fc57146101f757806317a5e03f1461021f578063221f22851461025b57806335d16743146102855780633c31d958146102c35780633ccfd60b146102f65780633f4ba83a1461030b578063429618f21461032057806344a71fbb146103d057806346fbf68e146104035780634bde38c8146104365780635c975abb1461044b5780635f1e98c71461046057806369451b5b1461047557806369aa9b251461048a5780636ef8d66d146104b4578063715018a6146104c9578063746d1e57146104de5780637afa1eed146104fb5780637c334d0b1461051057806382dc1ec414610543578063830b5089146105765780638456cb59146105a2578063871ff405146105b75780638da5cb5b146105f05780638f32d59b146106055780638f9f193f1461061a57806396e7089d1461064d578063b7be867e14610662578063be10862b14610677578063d91b68ce1461068c578063f1db44e8146106b6578063f2fde38b146106be578063fe5ff468146106f1578063ff2b09bc14610724575b600080fd5b3480156101d257600080fd5b506101db610754565b60408051600160a060020a039092168252519081900360200190f35b61021d6004803603602081101561020d57600080fd5b5035600160a060020a0316610763565b005b34801561022b57600080fd5b506102496004803603602081101561024257600080fd5b50356108e3565b60408051918252519081900360200190f35b34801561026757600080fd5b506102496004803603602081101561027e57600080fd5b5035610902565b34801561029157600080fd5b506102af600480360360208110156102a857600080fd5b5035610965565b604080519115158252519081900360200190f35b3480156102cf57600080fd5b506102af600480360360208110156102e657600080fd5b5035600160a060020a03166109ba565b34801561030257600080fd5b506102af610a35565b34801561031757600080fd5b5061021d610a8d565b34801561032c57600080fd5b506102af6004803603602081101561034357600080fd5b81019060208101813564010000000081111561035e57600080fd5b82018360208201111561037057600080fd5b8035906020019184602083028401116401000000008311171561039257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610b0c945050505050565b3480156103dc57600080fd5b5061021d600480360360208110156103f357600080fd5b5035600160a060020a0316610b3d565b34801561040f57600080fd5b506102af6004803603602081101561042657600080fd5b5035600160a060020a0316610b7f565b34801561044257600080fd5b506101db610b91565b34801561045757600080fd5b506102af610ba0565b34801561046c57600080fd5b50610249610bb0565b34801561048157600080fd5b50610249610bb6565b34801561049657600080fd5b5061021d600480360360208110156104ad57600080fd5b5035610bbc565b3480156104c057600080fd5b5061021d610bd4565b3480156104d557600080fd5b5061021d610bdf565b61021d600480360360208110156104f457600080fd5b5035610c49565b34801561050757600080fd5b506101db610c6d565b34801561051c57600080fd5b506102af6004803603602081101561053357600080fd5b5035600160a060020a0316610c7c565b34801561054f57600080fd5b5061021d6004803603602081101561056657600080fd5b5035600160a060020a0316610d07565b61021d6004803603604081101561058c57600080fd5b50600160a060020a038135169060200135610d24565b3480156105ae57600080fd5b5061021d610eb9565b3480156105c357600080fd5b506102af600480360360408110156105da57600080fd5b50600160a060020a038135169060200135610f3d565b3480156105fc57600080fd5b506101db610fc9565b34801561061157600080fd5b506102af610fd8565b34801561062657600080fd5b5061021d6004803603602081101561063d57600080fd5b5035600160a060020a0316610fe9565b34801561065957600080fd5b5061024961102b565b34801561066e57600080fd5b50610249611031565b34801561068357600080fd5b506101db611037565b34801561069857600080fd5b506102af600480360360208110156106af57600080fd5b5035611046565b61021d61109b565b3480156106ca57600080fd5b5061021d600480360360208110156106e157600080fd5b5035600160a060020a03166110bb565b3480156106fd57600080fd5b506102496004803603602081101561071457600080fd5b5035600160a060020a03166110d7565b34801561073057600080fd5b506102af6004803603604081101561074757600080fd5b50803590602001356110e9565b600654600160a060020a031681565b60015460a060020a900460ff161561077a57600080fd5b60006107866001610902565b3360009081526007602052604081205491925010806107a55750803410155b1515610847576040805160e560020a62461bcd02815260206004820152604760248201527f4d75737420737570706c79206174206c6561737420746865207265717569726560448201527f64206d696e696d756d2070757263686173652076616c7565206f72206861766560648201527f2063726564697400000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b61085033611123565b156108cb576040805160e560020a62461bcd02815260206004820152602960248201527f556e61626c6520746f20627579207061636b732066726f6d20616e6f7468657260448201527f20636f6e74726163740000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6108d48261112b565b6108df6001826114d0565b5050565b600b8054829081106108f157fe5b600091825260209091200154905081565b600b5460009082111561094757600b8054610940918491600019810190811061092757fe5b906000526020600020015461157290919063ffffffff16565b9050610960565b61095d82600b6001850381548110151561092757fe5b90505b919050565b600061096f610fd8565b151561097a57600080fd5b600a8290556040805183815290517f89bfb412bd3e31cdc80daa077c41c4b350394ce6b1df71df0757acb58709c25b9181900360200190a1506001919050565b60006109c4610fd8565b15156109cf57600080fd5b60058054600160a060020a03841673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f1621bff47ed50c9005e5edccf9340ce008500a12dc02e333c5db3890bea1ac4b9181900360200190a1506001919050565b6000610a3f610fd8565b1515610a4a57600080fd5b600254604051600160a060020a0390911690303180156108fc02916000818181858888f19350505050158015610a84573d6000803e3d6000fd5b50600190505b90565b610a9633610b7f565b1515610aa157600080fd5b60015460a060020a900460ff161515610ab957600080fd5b6001805474ff0000000000000000000000000000000000000000191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6000610b16610fd8565b1515610b2157600080fd5b8151610b3490600b9060208501906118da565b50600192915050565b610b45610fd8565b1515610b5057600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061095d818363ffffffff6115a416565b600254600160a060020a031681565b60015460a060020a900460ff1690565b60085481565b600a5481565b610bc4610fd8565b1515610bcf57600080fd5b600455565b610bdd336115db565b565b610be7610fd8565b1515610bf257600080fd5b600154604051600091600160a060020a0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36001805473ffffffffffffffffffffffffffffffffffffffff19169055565b60015460a060020a900460ff1615610c6057600080fd5b610c6a3382610d24565b50565b600554600160a060020a031681565b6000610c86610fd8565b1515610c9157600080fd5b600160a060020a038216600090815260076020526040902054610cbb90600163ffffffff61162316565b600160a060020a03831660008181526007602052604080822093909355915190917f8466168d4947c73f9fa41c3bc9a6e5efc442f28ec139dbfdbdc1ead3ab88538991a2506001919050565b610d1033610b7f565b1515610d1b57600080fd5b610c6a81611635565b60015460a060020a900460ff1615610d3b57600080fd5b6000610d4682610902565b3360009081526007602052604090205490915082111580610d675750803410155b1515610e09576040805160e560020a62461bcd02815260206004820152604760248201527f4d75737420737570706c79206174206c6561737420746865207265717569726560448201527f64206d696e696d756d2070757263686173652076616c7565206f72206861766560648201527f2063726564697400000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b610e1233611123565b15610e8d576040805160e560020a62461bcd02815260206004820152602960248201527f556e61626c6520746f20627579207061636b732066726f6d20616e6f7468657260448201527f20636f6e74726163740000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60005b82811015610ea957610ea18461112b565b600101610e90565b50610eb482826114d0565b505050565b610ec233610b7f565b1515610ecd57600080fd5b60015460a060020a900460ff1615610ee457600080fd5b6001805474ff0000000000000000000000000000000000000000191660a060020a1790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6000610f47610fd8565b1515610f5257600080fd5b600160a060020a038316600090815260076020526040902054610f7b908363ffffffff61162316565b600160a060020a03841660008181526007602052604080822093909355915190917f8466168d4947c73f9fa41c3bc9a6e5efc442f28ec139dbfdbdc1ead3ab88538991a25060015b92915050565b600154600160a060020a031690565b600154600160a060020a0316331490565b610ff1610fd8565b1515610ffc57600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60095481565b60045481565b600354600160a060020a031681565b6000611050610fd8565b151561105b57600080fd5b60098290556040805183815290517f75c6e6de0e60e7234e491208cf9d69acf42dfeecaa9e5ab98ddeabba591dd7569181900360200190a1506001919050565b60015460a060020a900460ff16156110b257600080fd5b610bdd33610763565b6110c3610fd8565b15156110ce57600080fd5b610c6a8161167d565b60076020526000908152604090205481565b60006110f3610fd8565b15156110fe57600080fd5b81600b8481548110151561110e57fe5b60009182526020909120015550600192915050565b6000903b1190565b600554604080517ffaf74e0700000000000000000000000000000000000000000000000000000000815233600482015290516000928392839283928392600160a060020a039091169163faf74e079160248082019260a09290919082900301818787803b15801561119b57600080fd5b505af11580156111af573d6000803e3d6000fd5b505050506040513d60a08110156111c557600080fd5b508051602080830151604080850151606086015160809096015160065460095484517f9b34918e00000000000000000000000000000000000000000000000000000000815260048101919091526024810188905260448101869052606481018490526084810189905260a48101839052600160a060020a038f811660c48301529451979d50949b509199509597509495506000941692639b34918e9260e48084019391929182900301818787803b15801561127f57600080fd5b505af1158015611293573d6000803e3d6000fd5b505050506040513d60208110156112a957600080fd5b5051600554600a54604080517fa56e9fd7000000000000000000000000000000000000000000000000000000008152336004820152602481019290925251929350600092839283928392600160a060020a039092169163a56e9fd79160448082019260809290919082900301818787803b15801561132657600080fd5b505af115801561133a573d6000803e3d6000fd5b505050506040513d608081101561135057600080fd5b508051602082015160408084015160609094015160055482517f10ba885b0000000000000000000000000000000000000000000000000000000081523360048201528351959a5093985094965094506000938493600160a060020a03909116926310ba885b92602480830193919282900301818787803b1580156113d357600080fd5b505af11580156113e7573d6000803e3d6000fd5b505050506040513d60408110156113fd57600080fd5b508051602091820151600654604080517f7c4c890e000000000000000000000000000000000000000000000000000000008152600481018d9052602481018c9052604481018b9052606481018a90526084810189905260a4810185905260c481018490529051939650919450600160a060020a031692637c4c890e9260e4808401938290030181600087803b15801561149557600080fd5b505af11580156114a9573d6000803e3d6000fd5b505050506040513d60208110156114bf57600080fd5b505050505050505050505050505050565b3360009081526007602052604090205482116115535733600090815260076020526040902054611506908363ffffffff6116fb16565b3360009081526007602052604081209190915534111561154e5760405133903480156108fc02916000818181858888f1935050505015801561154c573d6000803e3d6000fd5b505b6108df565b600854611566908263ffffffff61162316565b6008556108df81611710565b600082151561158357506000610fc3565b82820282848281151561159257fe5b041461159d57600080fd5b9392505050565b6000600160a060020a03821615156115bb57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b6115ec60008263ffffffff61181c16565b604051600160a060020a038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b60008282018381101561159d57600080fd5b61164660008263ffffffff61186816565b604051600160a060020a038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b600160a060020a038116151561169257600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008282111561170a57600080fd5b50900390565b6000341115610c6a57600061172b348363ffffffff6116fb16565b9050600081111561176557604051339082156108fc029083906000818181858888f19350505050158015611763573d6000803e3d6000fd5b505b60045460009061178c9061178085606463ffffffff6118b616565b9063ffffffff61157216565b600354604051919250600160a060020a03169082156108fc029083906000818181858888f193505050501580156117c7573d6000803e3d6000fd5b5060006117da848363ffffffff6116fb16565b600254604051919250600160a060020a03169082156108fc029083906000818181858888f19350505050158015611815573d6000803e3d6000fd5b5050505050565b600160a060020a038116151561183157600080fd5b61183b82826115a4565b151561184657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a038116151561187d57600080fd5b61188782826115a4565b1561189157600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b60008082116118c457600080fd5b600082848115156118d157fe5b04949350505050565b828054828255906000526020600020908101928215611915579160200282015b828111156119155782518255916020019190600101906118fa565b50611921929150611925565b5090565b610a8a91905b80821115611921576000815560010161192b56fea165627a7a72305820b52eb964fb6bc8fba13aec15f67cd6c34925a5b13027b99c43818323d96714ee0029000000000000000000000000377a75c4ef92502fe40d2b454f0c3829b8c0ffc5000000000000000000000000ace0a8666953bf9e1fe1cc91abf5db5a1c57dd46000000000000000000000000ff511f5e620d75780f200f005a306f7c7bd30eb1000000000000000000000000bc5370374fe08d699cf7fcd2e625a93bf393ccc4

Deployed Bytecode

0x6080604052600436106101c15763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302d05d3f81146101c65780631184fc57146101f757806317a5e03f1461021f578063221f22851461025b57806335d16743146102855780633c31d958146102c35780633ccfd60b146102f65780633f4ba83a1461030b578063429618f21461032057806344a71fbb146103d057806346fbf68e146104035780634bde38c8146104365780635c975abb1461044b5780635f1e98c71461046057806369451b5b1461047557806369aa9b251461048a5780636ef8d66d146104b4578063715018a6146104c9578063746d1e57146104de5780637afa1eed146104fb5780637c334d0b1461051057806382dc1ec414610543578063830b5089146105765780638456cb59146105a2578063871ff405146105b75780638da5cb5b146105f05780638f32d59b146106055780638f9f193f1461061a57806396e7089d1461064d578063b7be867e14610662578063be10862b14610677578063d91b68ce1461068c578063f1db44e8146106b6578063f2fde38b146106be578063fe5ff468146106f1578063ff2b09bc14610724575b600080fd5b3480156101d257600080fd5b506101db610754565b60408051600160a060020a039092168252519081900360200190f35b61021d6004803603602081101561020d57600080fd5b5035600160a060020a0316610763565b005b34801561022b57600080fd5b506102496004803603602081101561024257600080fd5b50356108e3565b60408051918252519081900360200190f35b34801561026757600080fd5b506102496004803603602081101561027e57600080fd5b5035610902565b34801561029157600080fd5b506102af600480360360208110156102a857600080fd5b5035610965565b604080519115158252519081900360200190f35b3480156102cf57600080fd5b506102af600480360360208110156102e657600080fd5b5035600160a060020a03166109ba565b34801561030257600080fd5b506102af610a35565b34801561031757600080fd5b5061021d610a8d565b34801561032c57600080fd5b506102af6004803603602081101561034357600080fd5b81019060208101813564010000000081111561035e57600080fd5b82018360208201111561037057600080fd5b8035906020019184602083028401116401000000008311171561039257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610b0c945050505050565b3480156103dc57600080fd5b5061021d600480360360208110156103f357600080fd5b5035600160a060020a0316610b3d565b34801561040f57600080fd5b506102af6004803603602081101561042657600080fd5b5035600160a060020a0316610b7f565b34801561044257600080fd5b506101db610b91565b34801561045757600080fd5b506102af610ba0565b34801561046c57600080fd5b50610249610bb0565b34801561048157600080fd5b50610249610bb6565b34801561049657600080fd5b5061021d600480360360208110156104ad57600080fd5b5035610bbc565b3480156104c057600080fd5b5061021d610bd4565b3480156104d557600080fd5b5061021d610bdf565b61021d600480360360208110156104f457600080fd5b5035610c49565b34801561050757600080fd5b506101db610c6d565b34801561051c57600080fd5b506102af6004803603602081101561053357600080fd5b5035600160a060020a0316610c7c565b34801561054f57600080fd5b5061021d6004803603602081101561056657600080fd5b5035600160a060020a0316610d07565b61021d6004803603604081101561058c57600080fd5b50600160a060020a038135169060200135610d24565b3480156105ae57600080fd5b5061021d610eb9565b3480156105c357600080fd5b506102af600480360360408110156105da57600080fd5b50600160a060020a038135169060200135610f3d565b3480156105fc57600080fd5b506101db610fc9565b34801561061157600080fd5b506102af610fd8565b34801561062657600080fd5b5061021d6004803603602081101561063d57600080fd5b5035600160a060020a0316610fe9565b34801561065957600080fd5b5061024961102b565b34801561066e57600080fd5b50610249611031565b34801561068357600080fd5b506101db611037565b34801561069857600080fd5b506102af600480360360208110156106af57600080fd5b5035611046565b61021d61109b565b3480156106ca57600080fd5b5061021d600480360360208110156106e157600080fd5b5035600160a060020a03166110bb565b3480156106fd57600080fd5b506102496004803603602081101561071457600080fd5b5035600160a060020a03166110d7565b34801561073057600080fd5b506102af6004803603604081101561074757600080fd5b50803590602001356110e9565b600654600160a060020a031681565b60015460a060020a900460ff161561077a57600080fd5b60006107866001610902565b3360009081526007602052604081205491925010806107a55750803410155b1515610847576040805160e560020a62461bcd02815260206004820152604760248201527f4d75737420737570706c79206174206c6561737420746865207265717569726560448201527f64206d696e696d756d2070757263686173652076616c7565206f72206861766560648201527f2063726564697400000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b61085033611123565b156108cb576040805160e560020a62461bcd02815260206004820152602960248201527f556e61626c6520746f20627579207061636b732066726f6d20616e6f7468657260448201527f20636f6e74726163740000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6108d48261112b565b6108df6001826114d0565b5050565b600b8054829081106108f157fe5b600091825260209091200154905081565b600b5460009082111561094757600b8054610940918491600019810190811061092757fe5b906000526020600020015461157290919063ffffffff16565b9050610960565b61095d82600b6001850381548110151561092757fe5b90505b919050565b600061096f610fd8565b151561097a57600080fd5b600a8290556040805183815290517f89bfb412bd3e31cdc80daa077c41c4b350394ce6b1df71df0757acb58709c25b9181900360200190a1506001919050565b60006109c4610fd8565b15156109cf57600080fd5b60058054600160a060020a03841673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f1621bff47ed50c9005e5edccf9340ce008500a12dc02e333c5db3890bea1ac4b9181900360200190a1506001919050565b6000610a3f610fd8565b1515610a4a57600080fd5b600254604051600160a060020a0390911690303180156108fc02916000818181858888f19350505050158015610a84573d6000803e3d6000fd5b50600190505b90565b610a9633610b7f565b1515610aa157600080fd5b60015460a060020a900460ff161515610ab957600080fd5b6001805474ff0000000000000000000000000000000000000000191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6000610b16610fd8565b1515610b2157600080fd5b8151610b3490600b9060208501906118da565b50600192915050565b610b45610fd8565b1515610b5057600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061095d818363ffffffff6115a416565b600254600160a060020a031681565b60015460a060020a900460ff1690565b60085481565b600a5481565b610bc4610fd8565b1515610bcf57600080fd5b600455565b610bdd336115db565b565b610be7610fd8565b1515610bf257600080fd5b600154604051600091600160a060020a0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36001805473ffffffffffffffffffffffffffffffffffffffff19169055565b60015460a060020a900460ff1615610c6057600080fd5b610c6a3382610d24565b50565b600554600160a060020a031681565b6000610c86610fd8565b1515610c9157600080fd5b600160a060020a038216600090815260076020526040902054610cbb90600163ffffffff61162316565b600160a060020a03831660008181526007602052604080822093909355915190917f8466168d4947c73f9fa41c3bc9a6e5efc442f28ec139dbfdbdc1ead3ab88538991a2506001919050565b610d1033610b7f565b1515610d1b57600080fd5b610c6a81611635565b60015460a060020a900460ff1615610d3b57600080fd5b6000610d4682610902565b3360009081526007602052604090205490915082111580610d675750803410155b1515610e09576040805160e560020a62461bcd02815260206004820152604760248201527f4d75737420737570706c79206174206c6561737420746865207265717569726560448201527f64206d696e696d756d2070757263686173652076616c7565206f72206861766560648201527f2063726564697400000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b610e1233611123565b15610e8d576040805160e560020a62461bcd02815260206004820152602960248201527f556e61626c6520746f20627579207061636b732066726f6d20616e6f7468657260448201527f20636f6e74726163740000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60005b82811015610ea957610ea18461112b565b600101610e90565b50610eb482826114d0565b505050565b610ec233610b7f565b1515610ecd57600080fd5b60015460a060020a900460ff1615610ee457600080fd5b6001805474ff0000000000000000000000000000000000000000191660a060020a1790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6000610f47610fd8565b1515610f5257600080fd5b600160a060020a038316600090815260076020526040902054610f7b908363ffffffff61162316565b600160a060020a03841660008181526007602052604080822093909355915190917f8466168d4947c73f9fa41c3bc9a6e5efc442f28ec139dbfdbdc1ead3ab88538991a25060015b92915050565b600154600160a060020a031690565b600154600160a060020a0316331490565b610ff1610fd8565b1515610ffc57600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60095481565b60045481565b600354600160a060020a031681565b6000611050610fd8565b151561105b57600080fd5b60098290556040805183815290517f75c6e6de0e60e7234e491208cf9d69acf42dfeecaa9e5ab98ddeabba591dd7569181900360200190a1506001919050565b60015460a060020a900460ff16156110b257600080fd5b610bdd33610763565b6110c3610fd8565b15156110ce57600080fd5b610c6a8161167d565b60076020526000908152604090205481565b60006110f3610fd8565b15156110fe57600080fd5b81600b8481548110151561110e57fe5b60009182526020909120015550600192915050565b6000903b1190565b600554604080517ffaf74e0700000000000000000000000000000000000000000000000000000000815233600482015290516000928392839283928392600160a060020a039091169163faf74e079160248082019260a09290919082900301818787803b15801561119b57600080fd5b505af11580156111af573d6000803e3d6000fd5b505050506040513d60a08110156111c557600080fd5b508051602080830151604080850151606086015160809096015160065460095484517f9b34918e00000000000000000000000000000000000000000000000000000000815260048101919091526024810188905260448101869052606481018490526084810189905260a48101839052600160a060020a038f811660c48301529451979d50949b509199509597509495506000941692639b34918e9260e48084019391929182900301818787803b15801561127f57600080fd5b505af1158015611293573d6000803e3d6000fd5b505050506040513d60208110156112a957600080fd5b5051600554600a54604080517fa56e9fd7000000000000000000000000000000000000000000000000000000008152336004820152602481019290925251929350600092839283928392600160a060020a039092169163a56e9fd79160448082019260809290919082900301818787803b15801561132657600080fd5b505af115801561133a573d6000803e3d6000fd5b505050506040513d608081101561135057600080fd5b508051602082015160408084015160609094015160055482517f10ba885b0000000000000000000000000000000000000000000000000000000081523360048201528351959a5093985094965094506000938493600160a060020a03909116926310ba885b92602480830193919282900301818787803b1580156113d357600080fd5b505af11580156113e7573d6000803e3d6000fd5b505050506040513d60408110156113fd57600080fd5b508051602091820151600654604080517f7c4c890e000000000000000000000000000000000000000000000000000000008152600481018d9052602481018c9052604481018b9052606481018a90526084810189905260a4810185905260c481018490529051939650919450600160a060020a031692637c4c890e9260e4808401938290030181600087803b15801561149557600080fd5b505af11580156114a9573d6000803e3d6000fd5b505050506040513d60208110156114bf57600080fd5b505050505050505050505050505050565b3360009081526007602052604090205482116115535733600090815260076020526040902054611506908363ffffffff6116fb16565b3360009081526007602052604081209190915534111561154e5760405133903480156108fc02916000818181858888f1935050505015801561154c573d6000803e3d6000fd5b505b6108df565b600854611566908263ffffffff61162316565b6008556108df81611710565b600082151561158357506000610fc3565b82820282848281151561159257fe5b041461159d57600080fd5b9392505050565b6000600160a060020a03821615156115bb57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b6115ec60008263ffffffff61181c16565b604051600160a060020a038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b60008282018381101561159d57600080fd5b61164660008263ffffffff61186816565b604051600160a060020a038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b600160a060020a038116151561169257600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008282111561170a57600080fd5b50900390565b6000341115610c6a57600061172b348363ffffffff6116fb16565b9050600081111561176557604051339082156108fc029083906000818181858888f19350505050158015611763573d6000803e3d6000fd5b505b60045460009061178c9061178085606463ffffffff6118b616565b9063ffffffff61157216565b600354604051919250600160a060020a03169082156108fc029083906000818181858888f193505050501580156117c7573d6000803e3d6000fd5b5060006117da848363ffffffff6116fb16565b600254604051919250600160a060020a03169082156108fc029083906000818181858888f19350505050158015611815573d6000803e3d6000fd5b5050505050565b600160a060020a038116151561183157600080fd5b61183b82826115a4565b151561184657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a038116151561187d57600080fd5b61188782826115a4565b1561189157600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b60008082116118c457600080fd5b600082848115156118d157fe5b04949350505050565b828054828255906000526020600020908101928215611915579160200282015b828111156119155782518255916020019190600101906118fa565b50611921929150611925565b5090565b610a8a91905b80821115611921576000815560010161192b56fea165627a7a72305820b52eb964fb6bc8fba13aec15f67cd6c34925a5b13027b99c43818323d96714ee0029

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

000000000000000000000000377a75c4ef92502fe40d2b454f0c3829b8c0ffc5000000000000000000000000ace0a8666953bf9e1fe1cc91abf5db5a1c57dd46000000000000000000000000ff511f5e620d75780f200f005a306f7c7bd30eb1000000000000000000000000bc5370374fe08d699cf7fcd2e625a93bf393ccc4

-----Decoded View---------------
Arg [0] : _wallet (address): 0x377a75c4EF92502fE40D2b454f0C3829b8c0ffc5
Arg [1] : _partnerAddress (address): 0xacE0a8666953bf9E1fe1Cc91Abf5Db5a1c57DD46
Arg [2] : _generator (address): 0xfF511f5E620D75780F200f005A306f7C7bD30EB1
Arg [3] : _creator (address): 0xbc5370374FE08d699cf7fcd2e625A93BF393cCC4

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000377a75c4ef92502fe40d2b454f0c3829b8c0ffc5
Arg [1] : 000000000000000000000000ace0a8666953bf9e1fe1cc91abf5db5a1c57dd46
Arg [2] : 000000000000000000000000ff511f5e620d75780f200f005a306f7c7bd30eb1
Arg [3] : 000000000000000000000000bc5370374fe08d699cf7fcd2e625a93bf393ccc4


Swarm Source

bzzr://b52eb964fb6bc8fba13aec15f67cd6c34925a5b13027b99c43818323d96714ee

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.