ETH Price: $3,158.53 (-4.69%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Token141851302022-02-11 13:54:261086 days ago1644587666IN
0xF17Fd8d6...C8D60672a
0 ETH0.0042684960.32021031
Set Token141851142022-02-11 13:50:471086 days ago1644587447IN
0xF17Fd8d6...C8D60672a
0 ETH0.0052491174.17771369
Set Token141720992022-02-09 13:11:191088 days ago1644412279IN
0xF17Fd8d6...C8D60672a
0 ETH0.0057487281.23794198
Set Token141224512022-02-01 21:04:441095 days ago1643749484IN
0xF17Fd8d6...C8D60672a
0 ETH0.01350166190.79855233
Set Token140814032022-01-26 13:01:251102 days ago1643202085IN
0xF17Fd8d6...C8D60672a
0 ETH0.0055068777.8202964
Set Token140301532022-01-18 14:53:491110 days ago1642517629IN
0xF17Fd8d6...C8D60672a
0 ETH0.00919339129.91621958
Set Token139853672022-01-11 16:40:071117 days ago1641919207IN
0xF17Fd8d6...C8D60672a
0 ETH0.01477017208.72447535
Set Token138487992021-12-21 13:31:351138 days ago1640093495IN
0xF17Fd8d6...C8D60672a
0 ETH0.0037640353.1913292
Set Token138035392021-12-14 13:23:551145 days ago1639488235IN
0xF17Fd8d6...C8D60672a
0 ETH0.0042824460.51728654
Set Token137587472021-12-07 13:19:561152 days ago1638883196IN
0xF17Fd8d6...C8D60672a
0 ETH0.0042647760.26754849
Set Token137212992021-12-01 13:19:071158 days ago1638364747IN
0xF17Fd8d6...C8D60672a
0 ETH0.0068816597.24801831
Set Token136777272021-11-24 14:30:341165 days ago1637764234IN
0xF17Fd8d6...C8D60672a
0 ETH0.01106282156.33402494
Set Token136661182021-11-22 18:39:171167 days ago1637606357IN
0xF17Fd8d6...C8D60672a
0 ETH0.00760904107.5270576
Add Manager136661042021-11-22 18:37:351167 days ago1637606255IN
0xF17Fd8d6...C8D60672a
0 ETH0.00616741133.59785539
Set Generator136520772021-11-20 13:09:481169 days ago1637413788IN
0xF17Fd8d6...C8D60672a
0 ETH0.0047564100
Add Manager131757332021-09-07 1:36:561243 days ago1630978616IN
0xF17Fd8d6...C8D60672a
0 ETH0.0046164100
Set Generator131756022021-09-07 1:06:451243 days ago1630976805IN
0xF17Fd8d6...C8D60672a
0 ETH0.0047564100
Set Generator131755962021-09-07 1:05:241243 days ago1630976724IN
0xF17Fd8d6...C8D60672a
0 ETH0.0047564100

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CrewFeatures

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
istanbul EvmVersion, None license
File 1 of 4 : CrewFeatures.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.7.6;

import "@openzeppelin/contracts/access/Ownable.sol";
import "../interfaces/ICrewGenerator.sol";


/**
 * @dev Contract which generates crew features based on the set they're part of
 */
contract CrewFeatures is Ownable {

  // Mapping of collectionIds to contract addresses of generators
  mapping (uint => ICrewGenerator) private _generators;

  // Mapping of tokenIds to collection membership
  mapping (uint => uint) private _crewCollection;

  // Mapping of tokenIds to modifiers
  mapping (uint => uint) private _crewModifiers;

  // Mapping indicating allowed managers
  mapping (address => bool) private _managers;

  event CollectionCreated(uint indexed id);
  event CollectionSeeded(uint indexed id);

  // Modifier to check if calling contract has the correct minting role
  modifier onlyManagers {
    require(isManager(_msgSender()), "CrewFeatures: Only managers can call this function");
    _;
  }

  /**
   * @dev Defines a collection and points to the relevant contract
   * @param _collId Id for the collection
   * @param _generator Address of the contract adhering to the appropriate interface
   */
  function setGenerator(uint _collId, ICrewGenerator _generator) external onlyOwner {
    _generators[_collId] = _generator;
    emit CollectionCreated(_collId);
  }

  /**
   * @dev Sets the seed for a given collection
   * @param _collId Id for the collection
   * @param _seed The seed to bootstrap the generator with
   */
  function setGeneratorSeed(uint _collId, bytes32 _seed) external onlyManagers {
    require(address(_generators[_collId]) != address(0), "CrewFeatures: collection must be defined");
    ICrewGenerator generator = _generators[_collId];
    generator.setSeed(_seed);
    emit CollectionSeeded(_collId);
  }

  /**
   * @dev Set a token with a specific crew collection
   * @param _crewId The ERC721 tokenID for the crew member
   * @param _collId The set ID to assign the crew member to
   * @param _mod An optional modifier ranging from 0 (default) to 10,000
   */
  function setToken(uint _crewId, uint _collId, uint _mod) external onlyManagers {
    require(address(_generators[_collId]) != address(0), "CrewFeatures: collection must be defined");
    _crewCollection[_crewId] = _collId;

    if (_mod > 0) {
      _crewModifiers[_crewId] = _mod;
    }
  }

  /**
   * @dev Returns the generated features for a crew member as a bitpacked uint
   * @param _crewId The ERC721 tokenID for the crew member
   */
  function getFeatures(uint _crewId) public view returns (uint) {
    uint generatorId = _crewCollection[_crewId];
    ICrewGenerator generator = _generators[generatorId];
    uint features = generator.getFeatures(_crewId, _crewModifiers[_crewId]);
    features |= generatorId << 0;
    return features;
  }

  /**
   * @dev Add a new account / contract that can mint / burn crew members
   * @param _manager Address of the new manager
   */
  function addManager(address _manager) external onlyOwner {
    _managers[_manager] = true;
  }

  /**
   * @dev Remove a current manager
   * @param _manager Address of the manager to be removed
   */
  function removeManager(address _manager) external onlyOwner {
    _managers[_manager] = false;
  }

  /**
   * @dev Checks if an address is a manager
   * @param _manager Address of contract / account to check
   */
  function isManager(address _manager) public view returns (bool) {
    return _managers[_manager];
  }
}

File 2 of 4 : ICrewGenerator.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.7.6;


interface ICrewGenerator {

  function setSeed(bytes32 _seed) external;

  function getFeatures(uint _crewId, uint _mod) external view returns (uint);
}

File 3 of 4 : Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

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

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

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

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

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

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

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

File 4 of 4 : Context.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }

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

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "evmVersion": "istanbul",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"CollectionCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"CollectionSeeded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"_manager","type":"address"}],"name":"addManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_crewId","type":"uint256"}],"name":"getFeatures","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_manager","type":"address"}],"name":"isManager","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":"_manager","type":"address"}],"name":"removeManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_collId","type":"uint256"},{"internalType":"contract ICrewGenerator","name":"_generator","type":"address"}],"name":"setGenerator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_collId","type":"uint256"},{"internalType":"bytes32","name":"_seed","type":"bytes32"}],"name":"setGeneratorSeed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_crewId","type":"uint256"},{"internalType":"uint256","name":"_collId","type":"uint256"},{"internalType":"uint256","name":"_mod","type":"uint256"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5060006100216100c460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506100cc565b600033905090565b610f53806100db6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806394a5dbb11161006657806394a5dbb1146101b5578063ac18de43146101f7578063bf39eaf21461023b578063f2fde38b14610273578063f3ae2415146102b75761009e565b80632d06177a146100a3578063715018a6146100e757806374542f6f146100f15780638da5cb5b14610133578063949ca2c214610167575b600080fd5b6100e5600480360360208110156100b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610311565b005b6100ef61041b565b005b61011d6004803603602081101561010757600080fd5b8101908080359060200190929190505050610588565b6040518082815260200191505060405180910390f35b61013b610698565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101b36004803603604081101561017d57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106c1565b005b6101f5600480360360608110156101cb57600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506107f3565b005b6102396004803603602081101561020d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610950565b005b6102716004803603604081101561025157600080fd5b810190808035906020019092919080359060200190929190505050610a5a565b005b6102b56004803603602081101561028957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c4d565b005b6102f9600480360360208110156102cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e3f565b60405180821515815260200191505060405180910390f35b610319610e95565b73ffffffffffffffffffffffffffffffffffffffff16610337610698565b73ffffffffffffffffffffffffffffffffffffffff16146103c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610423610e95565b73ffffffffffffffffffffffffffffffffffffffff16610441610698565b73ffffffffffffffffffffffffffffffffffffffff16146104ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000806002600084815260200190815260200160002054905060006001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff16630856ffce8660036000898152602001908152602001600020546040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561064757600080fd5b505afa15801561065b573d6000803e3d6000fd5b505050506040513d602081101561067157600080fd5b81019080805190602001909291905050509050600083901b81179050809350505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6106c9610e95565b73ffffffffffffffffffffffffffffffffffffffff166106e7610698565b73ffffffffffffffffffffffffffffffffffffffff1614610770576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b806001600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550817f5baee347cce9899b119eb4f42984958a6e25dc5b505f4f1ab8f3837120cf241f60405160405180910390a25050565b6108036107fe610e95565b610e3f565b610858576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180610ec46032913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610911576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180610ef66028913960400191505060405180910390fd5b816002600085815260200190815260200160002081905550600081111561094b578060036000858152602001908152602001600020819055505b505050565b610958610e95565b73ffffffffffffffffffffffffffffffffffffffff16610976610698565b73ffffffffffffffffffffffffffffffffffffffff16146109ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a6a610a65610e95565b610e3f565b610abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180610ec46032913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180610ef66028913960400191505060405180910390fd5b60006001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663347024ff836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610c0357600080fd5b505af1158015610c17573d6000803e3d6000fd5b50505050827faa17b57fa6e8706a28454ce0dc5860a381af26f2430a6b518d8f468e3fed0ebd60405160405180910390a2505050565b610c55610e95565b73ffffffffffffffffffffffffffffffffffffffff16610c73610698565b73ffffffffffffffffffffffffffffffffffffffff1614610cfc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610e9e6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60003390509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734372657746656174757265733a204f6e6c79206d616e61676572732063616e2063616c6c20746869732066756e6374696f6e4372657746656174757265733a20636f6c6c656374696f6e206d75737420626520646566696e6564a26469706673582212201af64d9ca984e51b3f0da1a55c5050bcb9f2a8633ebc69d63df610b88559975964736f6c63430007060033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806394a5dbb11161006657806394a5dbb1146101b5578063ac18de43146101f7578063bf39eaf21461023b578063f2fde38b14610273578063f3ae2415146102b75761009e565b80632d06177a146100a3578063715018a6146100e757806374542f6f146100f15780638da5cb5b14610133578063949ca2c214610167575b600080fd5b6100e5600480360360208110156100b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610311565b005b6100ef61041b565b005b61011d6004803603602081101561010757600080fd5b8101908080359060200190929190505050610588565b6040518082815260200191505060405180910390f35b61013b610698565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101b36004803603604081101561017d57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106c1565b005b6101f5600480360360608110156101cb57600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506107f3565b005b6102396004803603602081101561020d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610950565b005b6102716004803603604081101561025157600080fd5b810190808035906020019092919080359060200190929190505050610a5a565b005b6102b56004803603602081101561028957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c4d565b005b6102f9600480360360208110156102cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e3f565b60405180821515815260200191505060405180910390f35b610319610e95565b73ffffffffffffffffffffffffffffffffffffffff16610337610698565b73ffffffffffffffffffffffffffffffffffffffff16146103c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610423610e95565b73ffffffffffffffffffffffffffffffffffffffff16610441610698565b73ffffffffffffffffffffffffffffffffffffffff16146104ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000806002600084815260200190815260200160002054905060006001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff16630856ffce8660036000898152602001908152602001600020546040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561064757600080fd5b505afa15801561065b573d6000803e3d6000fd5b505050506040513d602081101561067157600080fd5b81019080805190602001909291905050509050600083901b81179050809350505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6106c9610e95565b73ffffffffffffffffffffffffffffffffffffffff166106e7610698565b73ffffffffffffffffffffffffffffffffffffffff1614610770576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b806001600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550817f5baee347cce9899b119eb4f42984958a6e25dc5b505f4f1ab8f3837120cf241f60405160405180910390a25050565b6108036107fe610e95565b610e3f565b610858576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180610ec46032913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610911576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180610ef66028913960400191505060405180910390fd5b816002600085815260200190815260200160002081905550600081111561094b578060036000858152602001908152602001600020819055505b505050565b610958610e95565b73ffffffffffffffffffffffffffffffffffffffff16610976610698565b73ffffffffffffffffffffffffffffffffffffffff16146109ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a6a610a65610e95565b610e3f565b610abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180610ec46032913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180610ef66028913960400191505060405180910390fd5b60006001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663347024ff836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610c0357600080fd5b505af1158015610c17573d6000803e3d6000fd5b50505050827faa17b57fa6e8706a28454ce0dc5860a381af26f2430a6b518d8f468e3fed0ebd60405160405180910390a2505050565b610c55610e95565b73ffffffffffffffffffffffffffffffffffffffff16610c73610698565b73ffffffffffffffffffffffffffffffffffffffff1614610cfc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610e9e6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60003390509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734372657746656174757265733a204f6e6c79206d616e61676572732063616e2063616c6c20746869732066756e6374696f6e4372657746656174757265733a20636f6c6c656374696f6e206d75737420626520646566696e6564a26469706673582212201af64d9ca984e51b3f0da1a55c5050bcb9f2a8633ebc69d63df610b88559975964736f6c63430007060033

Deployed Bytecode Sourcemap

249:3238:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2963:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1717:145:2;;;:::i;:::-;;2521:305:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1085:85:2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1184:163:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2076:291;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3166:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1511:303;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2011:240:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3384:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2963:94;1308:12:2;:10;:12::i;:::-;1297:23;;:7;:5;:7::i;:::-;:23;;;1289:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3048:4:0::1;3026:9;:19;3036:8;3026:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;2963:94:::0;:::o;1717:145:2:-;1308:12;:10;:12::i;:::-;1297:23;;:7;:5;:7::i;:::-;:23;;;1289:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1823:1:::1;1786:40;;1807:6;::::0;::::1;;;;;;;;1786:40;;;;;;;;;;;;1853:1;1836:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1717:145::o:0;2521:305:0:-;2577:4;2589:16;2608:15;:24;2624:7;2608:24;;;;;;;;;;;;2589:43;;2638:24;2665:11;:24;2677:11;2665:24;;;;;;;;;;;;;;;;;;;;;2638:51;;2695:13;2711:9;:21;;;2733:7;2742:14;:23;2757:7;2742:23;;;;;;;;;;;;2711:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2695:71;;2799:1;2784:11;:16;;2772:28;;;;2813:8;2806:15;;;;;2521:305;;;:::o;1085:85:2:-;1131:7;1157:6;;;;;;;;;;;1150:13;;1085:85;:::o;1184:163:0:-;1308:12:2;:10;:12::i;:::-;1297:23;;:7;:5;:7::i;:::-;:23;;;1289:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1295:10:0::1;1272:11;:20;1284:7;1272:20;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;1334:7;1316:26;;;;;;;;;;1184:163:::0;;:::o;2076:291::-;884:23;894:12;:10;:12::i;:::-;884:9;:23::i;:::-;876:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2210:1:::1;2169:43;;2177:11;:20;2189:7;2177:20;;;;;;;;;;;;;;;;;;;;;2169:43;;;;2161:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2290:7;2263:15;:24;2279:7;2263:24;;;;;;;;;;;:34;;;;2315:1;2308:4;:8;2304:59;;;2352:4;2326:14;:23;2341:7;2326:23;;;;;;;;;;;:30;;;;2304:59;2076:291:::0;;;:::o;3166:98::-;1308:12:2;:10;:12::i;:::-;1297:23;;:7;:5;:7::i;:::-;:23;;;1289:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3254:5:0::1;3232:9;:19;3242:8;3232:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3166:98:::0;:::o;1511:303::-;884:23;894:12;:10;:12::i;:::-;884:9;:23::i;:::-;876:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1643:1:::1;1602:43;;1610:11;:20;1622:7;1610:20;;;;;;;;;;;;;;;;;;;;;1602:43;;;;1594:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1696:24;1723:11;:20;1735:7;1723:20;;;;;;;;;;;;;;;;;;;;;1696:47;;1749:9;:17;;;1767:5;1749:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1801:7;1784:25;;;;;;;;;;968:1;1511:303:::0;;:::o;2011:240:2:-;1308:12;:10;:12::i;:::-;1297:23;;:7;:5;:7::i;:::-;:23;;;1289:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2119:1:::1;2099:22;;:8;:22;;;;2091:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2208:8;2179:38;;2200:6;::::0;::::1;;;;;;;;2179:38;;;;;;;;;;;;2236:8;2227:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2011:240:::0;:::o;3384:101:0:-;3442:4;3461:9;:19;3471:8;3461:19;;;;;;;;;;;;;;;;;;;;;;;;;3454:26;;3384:101;;;:::o;598:104:3:-;651:15;685:10;678:17;;598:104;:::o

Swarm Source

ipfs://1af64d9ca984e51b3f0da1a55c5050bcb9f2a8633ebc69d63df610b885599759

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.