ETH Price: $3,567.88 (-1.22%)

Contract

0xBBf51Be40c51f7d4025ad980a80303D5247d2509
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer Funds189643382024-01-08 19:22:59330 days ago1704741779IN
0xBBf51Be4...5247d2509
0 ETH0.00153334.89881737
Upgrade Proxy To189643362024-01-08 19:22:35330 days ago1704741755IN
0xBBf51Be4...5247d2509
0 ETH0.0014438634.89881737
Change Proxy Adm...158005662022-10-22 2:10:11773 days ago1666404611IN
0xBBf51Be4...5247d2509
0 ETH0.0005433718.57498328
Upgrade Proxy To...158005662022-10-22 2:10:11773 days ago1666404611IN
0xBBf51Be4...5247d2509
0 ETH0.0005675418.57498328
Change Proxy Adm...158005662022-10-22 2:10:11773 days ago1666404611IN
0xBBf51Be4...5247d2509
0 ETH0.0005433718.57498328
Change Proxy Adm...158005662022-10-22 2:10:11773 days ago1666404611IN
0xBBf51Be4...5247d2509
0 ETH0.0005433718.57498328
Change Proxy Adm...157863512022-10-20 2:33:35775 days ago1666233215IN
0xBBf51Be4...5247d2509
0 ETH0.0005892220.1423835
Change Proxy Adm...157863002022-10-20 2:23:23775 days ago1666232603IN
0xBBf51Be4...5247d2509
0 ETH0.0005292718.09314991
Register Horse123984132021-05-09 5:54:301304 days ago1620539670IN
0xBBf51Be4...5247d2509
0.009 ETH0.00458214112.24977696
Bulk Transfer Ou...123194212021-04-27 1:20:101316 days ago1619486410IN
0xBBf51Be4...5247d2509
0 ETH0.0020124635
Bulk Transfer Ou...123077072021-04-25 6:04:381318 days ago1619330678IN
0xBBf51Be4...5247d2509
0 ETH0.0020699636
Bulk Transfer Ou...119703962021-03-04 7:16:511370 days ago1614842211IN
0xBBf51Be4...5247d2509
0 ETH0.0029639365
Bulk Transfer Ou...118983992021-02-21 5:26:481381 days ago1613885208IN
0xBBf51Be4...5247d2509
0 ETH0.0110838104
Bulk Transfer Ou...118717492021-02-17 3:07:201385 days ago1613531240IN
0xBBf51Be4...5247d2509
0 ETH0.01119163105
Bulk Transfer Ou...118703842021-02-16 21:54:271385 days ago1613512467IN
0xBBf51Be4...5247d2509
0 ETH0.0180132169
Bulk Transfer Ou...118441322021-02-12 20:54:341389 days ago1613163274IN
0xBBf51Be4...5247d2509
0 ETH0.01971859185
Bulk Transfer Ou...118441322021-02-12 20:54:341389 days ago1613163274IN
0xBBf51Be4...5247d2509
0 ETH0.01971859185
Bulk Transfer Ou...118441322021-02-12 20:54:341389 days ago1613163274IN
0xBBf51Be4...5247d2509
0 ETH0.01971859185
Bulk Transfer Ou...118441312021-02-12 20:54:321389 days ago1613163272IN
0xBBf51Be4...5247d2509
0 ETH0.01982518186
Bulk Transfer Ou...118440912021-02-12 20:44:121389 days ago1613162652IN
0xBBf51Be4...5247d2509
0 ETH0.01982518186
Bulk Transfer Ou...118440912021-02-12 20:44:121389 days ago1613162652IN
0xBBf51Be4...5247d2509
0 ETH0.01971859185
Bulk Transfer Ou...118440912021-02-12 20:44:121389 days ago1613162652IN
0xBBf51Be4...5247d2509
0 ETH0.01982518186
Bulk Transfer Ou...118440892021-02-12 20:43:461389 days ago1613162626IN
0xBBf51Be4...5247d2509
0 ETH0.01982518186
Bulk Transfer Ou...118440882021-02-12 20:43:401389 days ago1613162620IN
0xBBf51Be4...5247d2509
0 ETH0.01971859185
Bulk Transfer Ou...118440852021-02-12 20:43:251389 days ago1613162605IN
0xBBf51Be4...5247d2509
0 ETH0.01971859185
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
189643382024-01-08 19:22:59330 days ago1704741779
0xBBf51Be4...5247d2509
6.56274457 ETH
113152192020-11-23 15:11:491471 days ago1606144309
0xBBf51Be4...5247d2509
0.0243 ETH
112825452020-11-18 14:44:371476 days ago1605710677
0xBBf51Be4...5247d2509
0.06504 ETH
112825452020-11-18 14:44:371476 days ago1605710677
0xBBf51Be4...5247d2509
0.89136 ETH
112816262020-11-18 11:18:471476 days ago1605698327
0xBBf51Be4...5247d2509
0.04032 ETH
112800412020-11-18 5:26:511476 days ago1605677211
0xBBf51Be4...5247d2509
0.0066 ETH
112800412020-11-18 5:26:511476 days ago1605677211
0xBBf51Be4...5247d2509
0.39024 ETH
112793992020-11-18 3:02:041476 days ago1605668524
0xBBf51Be4...5247d2509
0.13008 ETH
112793142020-11-18 2:43:391476 days ago1605667419
0xBBf51Be4...5247d2509
0.06504 ETH
112792382020-11-18 2:25:491476 days ago1605666349
0xBBf51Be4...5247d2509
0.29712 ETH
112792192020-11-18 2:22:311476 days ago1605666151
0xBBf51Be4...5247d2509
0.14856 ETH
112790452020-11-18 1:43:591476 days ago1605663839
0xBBf51Be4...5247d2509
0.00672 ETH
112787862020-11-18 0:48:011476 days ago1605660481
0xBBf51Be4...5247d2509
0.0056 ETH
112756872020-11-17 13:20:481477 days ago1605619248
0xBBf51Be4...5247d2509
0.01308 ETH
112732652020-11-17 4:35:191477 days ago1605587719
0xBBf51Be4...5247d2509
0.06672 ETH
112724962020-11-17 1:41:481477 days ago1605577308
0xBBf51Be4...5247d2509
0.0396 ETH
112718292020-11-16 23:13:421477 days ago1605568422
0xBBf51Be4...5247d2509
0.13344 ETH
112718292020-11-16 23:13:421477 days ago1605568422
0xBBf51Be4...5247d2509
0.40032 ETH
112717942020-11-16 23:07:431477 days ago1605568063
0xBBf51Be4...5247d2509
0.06672 ETH
112715292020-11-16 22:11:481477 days ago1605564708
0xBBf51Be4...5247d2509
0.39384 ETH
112715292020-11-16 22:11:481477 days ago1605564708
0xBBf51Be4...5247d2509
0.06504 ETH
112708562020-11-16 19:40:201477 days ago1605555620
0xBBf51Be4...5247d2509
0.02616 ETH
112708562020-11-16 19:40:201477 days ago1605555620
0xBBf51Be4...5247d2509
0.07848 ETH
112706402020-11-16 18:55:411478 days ago1605552941
0xBBf51Be4...5247d2509
0.01308 ETH
112660602020-11-16 1:50:031478 days ago1605491403
0xBBf51Be4...5247d2509
0.0066 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RacingProxy

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-03-10
*/

// File: @openzeppelin/contracts/utils/ReentrancyGuard.sol

pragma solidity ^0.5.0;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 */
contract ReentrancyGuard {
    // counter to allow mutex lock with only one SSTORE operation
    uint256 private _guardCounter;

    constructor () internal {
        // The counter starts at one to prevent changing it from zero to a non-zero
        // value, which is a more expensive operation.
        _guardCounter = 1;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and make it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        _guardCounter += 1;
        uint256 localCounter = _guardCounter;
        _;
        require(localCounter == _guardCounter, "ReentrancyGuard: reentrant call");
    }
}

// File: @openzeppelin/contracts/GSN/Context.sol

pragma solidity ^0.5.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.
 */
contract Context {
    // Empty internal constructor, to prevent people from mistakenly deploying
    // an instance of this contract, which should be used via inheritance.
    constructor () internal { }
    // solhint-disable-previous-line no-empty-blocks

    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }

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

// File: @openzeppelin/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(!has(role, account), "Roles: account already has role");
        role.bearer[account] = true;
    }

    /**
     * @dev Remove an account's access to this role.
     */
    function remove(Role storage role, address account) internal {
        require(has(role, account), "Roles: account does not have role");
        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), "Roles: account is the zero address");
        return role.bearer[account];
    }
}

// File: 0.5-contracts/normal_deployment/racing/RacingAdmins.sol

pragma solidity ^0.5.8;



contract RacingAdmins is Context {
    using Roles for Roles.Role;

    event AdminAdded(address indexed account);
    event AdminRemoved(address indexed account);

    Roles.Role private _admins;

    constructor () internal {
        _addAdmin(_msgSender());
    }

    modifier onlyAdmin() {
        require(isAdmin(_msgSender()), "AdminRole: caller does not have the Admin role");
        _;
    }

    function isAdmin(address account) public view returns (bool) {
        return _admins.has(account);
    }

    function addAdmin(address account) public onlyAdmin {
        _addAdmin(account);
    }

    function renounceAdmin(address account) public onlyAdmin {
        _removeAdmin(account);
    }

    function _addAdmin(address account) internal {
        _admins.add(account);
        emit AdminAdded(account);
    }

    function _removeAdmin(address account) internal {
        _admins.remove(account);
        emit AdminRemoved(account);
    }
}

// File: 0.5-contracts/normal_deployment/racing/RacingFeeReceiver.sol

pragma solidity ^0.5.8;


contract RacingFeeReceiver is RacingAdmins {
    address payable private _feeWallet;

    event FeeWalletTransferred(address indexed previousFeeWallet, address indexed newFeeWallet);

    /**
     * @dev Returns the address of the current fee receiver.
     */
    function feeWallet() public view returns (address payable) {
        return _feeWallet;
    }

    /**
     * @dev Throws if called by any account other than the fee receiver wallet.
     */
    modifier onlyFeeWallet() {
        require(isFeeWallet(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Returns true if the caller is the current fee receiver wallet.
     */
    function isFeeWallet() public view returns (bool) {
        return _msgSender() == _feeWallet;
    }

    /**
     * @dev Leaves the contract without fee receiver wallet.
     *
     * NOTE: Renouncing will leave the contract without an fee receiver wallet.
     * It means that fee will be transferred to the zero address.
     */
    function renounceFeeWallet() public onlyAdmin {
        emit FeeWalletTransferred(_feeWallet, address(0));
        _feeWallet = address(0);
    }

    /**
     * @dev Transfers address of the fee receiver to a new address (`newFeeWallet`).
     * Can only be called by admins.
     */
    function transferFeeWalletOwnership(address payable newFeeWallet) public onlyAdmin {
        _transferFeeWalletOwnership(newFeeWallet);
    }

    /**
     * @dev Transfers address of the fee receiver to a new address (`newFeeWallet`).
     */
    function _transferFeeWalletOwnership(address payable newFeeWallet) internal {
        require(newFeeWallet != address(0), "Ownable: new owner is the zero address");
        emit FeeWalletTransferred(_feeWallet, newFeeWallet);
        _feeWallet = newFeeWallet;
    }
}

// File: 0.5-contracts/normal_deployment/racing/RacingStorage.sol

pragma solidity ^0.5.8;



contract RacingStorage is RacingFeeReceiver, ReentrancyGuard {
    // --
    // Permanent Storage Variables
    // --

    mapping(bytes32 => Race) public Races; // The race mapping structure.
    mapping(uint256 => address) public Owner_Horse; // Owner of the Horse ID.
    mapping(uint256 => uint256) public Horse_Active_Races; // Number of races the horse is registered for.
    mapping(bytes32 => bool) public ID_Saved; // Returns whether or not the race ID is present on storage already.
    mapping(uint256 => uint256) public Position_To_Payment; // Returns the percentage of the payment depending on horse's position in a race.
    mapping(address => bool) public Is_Authorized; // Returns whether an address is authorized or not.
    mapping(bytes32 => string) public Cancelled_Races; // Returns a cancelled race and its reason to be cancelled.
    mapping(bytes32 => bool) public Has_Zed_Claimed; // Returns whether or not winnings for a race have been claimed for Zed.

    address BB; // Blockchain Brain
    address Core; // Core contract.

    struct Race {
        string Track_Name; // Name of the track or event.
        bytes32 Race_ID; // Key provided for Race ID.
        uint256 Length; // Length of the track (m).
        uint256 Horses_Registered; // Current number of horses registered.
        uint256 Unix_Start; // Timestamp the race starts.
        uint256 Entrance_Fee; // Entrance fee for a particular race (10^18).
        uint256 Prize_Pool; // Total bets in the prize pool (10^18).
        uint256 Horses_Allowed; // Total number of horses allowed for a race.
        uint256[] Horses; // List of Horse IDs on Race.
        State Race_State; // Current state of the race.
        mapping(uint256 => Horse) Lineup; // Mapping of the Horse ID => Horse struct.
        mapping(uint256 => uint256) Gate_To_ID; // Mapping of the Gate # => Horse ID.
        mapping(uint256 => bool) Is_Gate_Taken; // Whether or not a gate number has been taken.
    }

    struct Horse {
        uint256 Gate; // Gate this horse is currently at.
        uint256 Total_Bet; // Total amount bet on this horse.
        uint256 Final_Position; // Final position of the horse (1 to Horses allowed in race).
        mapping(address => uint256) Bet_Placed; // Amount a specific address bet on this horse.
        mapping(address => bool) Bet_Claimed; // Whether or not that specific address claimed their bet.
    }

    enum State {Null, Registration, Betting, Final, Fail_Safe}
}

// File: 0.5-contracts/normal_deployment/racing/proxy/Proxy.sol

pragma solidity ^0.5.8;


/**
 * @title Proxy
 * @dev Implements delegation of calls to other contracts, with proper
 * forwarding of return values and bubbling of failures.
 * It defines a fallback function that delegates all calls to the address
 * returned by the abstract _implementation() internal function.
 */
contract Proxy is RacingStorage {
	/**
	 * @dev Fallback function.
	 * Implemented entirely in `_fallback`.
	 */
	function () payable external {
		_fallback();
	}

	/**
	 * @dev fallback implementation.
	 * Extracted to enable manual triggering.
	 */
	function _fallback() internal {
		_willFallback();
		_delegate(_implementation());
	}

	/**
	 * @dev Function that is run as the first thing in the fallback function.
	 * Can be redefined in derived contracts to add functionality.
	 * Redefinitions must call super._willFallback().
	 */
	function _willFallback() internal {}

	/**
	 * @dev Delegates execution to an implementation contract.
	 * This is a low level function that doesn't return to its internal call site.
	 * It will return to the external caller whatever the implementation returns.
	 * @param implementation Address to delegate.
	 */
	function _delegate(address implementation) internal {
		assembly {
			// Copy msg.data. We take full control of memory in this inline assembly
			// block because it will not return to Solidity code. We overwrite the
			// Solidity scratch pad at memory position 0.
			calldatacopy(0, 0, calldatasize)

			// Call the implementation.
			// out and outsize are 0 because we don't know the size yet.
			let result := delegatecall(gas, implementation, 0, calldatasize, 0, 0)

			// Copy the returned data.
			returndatacopy(0, 0, returndatasize)

			switch result
			// delegatecall returns 0 on error.
			case 0 { revert(0, returndatasize) }
			default { return(0, returndatasize) }
		}
  	}

	/**
	 * @return The Address of the implementation.
	 */
	function _implementation() internal view returns (address);
}

// File: @openzeppelin/contracts/utils/Address.sol

pragma solidity ^0.5.5;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * This test is non-exhaustive, and there may be false-negatives: during the
     * execution of a contract's constructor, its address will be reported as
     * not containing a contract.
     *
     * IMPORTANT: It is unsafe to assume that an address for which this
     * function returns false is an externally-owned account (EOA) and not a
     * contract.
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies in extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }

    /**
     * @dev Converts an `address` into `address payable`. Note that this is
     * simply a type cast: the actual underlying value is not changed.
     *
     * _Available since v2.4.0._
     */
    function toPayable(address account) internal pure returns (address payable) {
        return address(uint160(account));
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     *
     * _Available since v2.4.0._
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-call-value
        (bool success, ) = recipient.call.value(amount)("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

// File: 0.5-contracts/normal_deployment/racing/proxy/BaseUpgradeabilityProxy.sol

pragma solidity ^0.5.8;




/**
 * @title BaseUpgradeabilityProxy
 * @dev This contract implements a proxy that allows to change the
 * implementation address to which it will delegate.
 * Such a change is called an implementation upgrade.
 */
contract BaseUpgradeabilityProxy is Proxy {
	using Address for address;

	/**
	 * @dev The version of current(active) logic contract
	 */
    string internal _version;

	/**
	 * @dev Storage slot with the address of the current implementation.
	 * This is the keccak-256 hash of "org.zeppelinos.proxy.implementation", and is
	 * validated in the constructor.
	 */
	bytes32 internal constant IMPLEMENTATION_SLOT = 0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3;

	/**
	 * @dev Emitted when the implementation is upgraded.
	 * @param implementation Address of the new implementation.
	 */
	event Upgraded(address indexed implementation);

	/**
	 * @dev Returns the current implementation.
	 * @return Address of the current implementation
	 */
	function _implementation() internal view returns (address impl) {
		bytes32 slot = IMPLEMENTATION_SLOT;
		assembly {
		    impl := sload(slot)
		}
	}

	/**
	 * @dev Upgrades the proxy to a new implementation.
	 * @param newImplementation Address of the new implementation.
	 * @param newVersion of proxied contract.
	 */
	function _upgradeProxyTo(address newImplementation, string memory newVersion) internal {
		_setProxyImplementation(newImplementation, newVersion);

		emit Upgraded(newImplementation);
	}

	/**
	 * @dev Sets the implementation address of the proxy.
	 * @param newImplementation Address of the new implementation.
	 * @param newVersion of proxied contract.
	 */
	function _setProxyImplementation(address newImplementation, string memory newVersion) internal {
		require(newImplementation.isContract(), "Cannot set a proxy implementation to a non-contract address");

 		_version = newVersion;

		bytes32 slot = IMPLEMENTATION_SLOT;

		assembly {
		    sstore(slot, newImplementation)
		}
	}
}

// File: 0.5-contracts/normal_deployment/racing/proxy/UpgradeabilityProxy.sol

pragma solidity ^0.5.8;


/**
 * @title UpgradeabilityProxy
 * @dev Extends BaseUpgradeabilityProxy with a constructor for initializing
 * implementation and init data.
 */
contract UpgradeabilityProxy is BaseUpgradeabilityProxy {
	/**
	 * @dev Contract constructor.
	 * @param _logic Address of the initial implementation.
	 */
	constructor(address _logic) public payable {
		assert(IMPLEMENTATION_SLOT == keccak256("org.zeppelinos.proxy.implementation"));
		_setProxyImplementation(_logic, "1.0.0");
	}
}

// File: 0.5-contracts/normal_deployment/racing/proxy/BaseAdminUpgradeabilityProxy.sol

pragma solidity ^0.5.8;


/**
 * @title BaseAdminUpgradeabilityProxy
 * @dev This contract combines an upgradeability proxy with an authorization
 * mechanism for administrative tasks.
 * All external functions in this contract must be guarded by the
 * `ifProxyAdmin` modifier. See ethereum/solidity#3864 for a Solidity
 * feature proposal that would enable this to be done automatically.
 */
contract BaseAdminUpgradeabilityProxy is BaseUpgradeabilityProxy {
	/**
	 * @dev Emitted when the administration has been transferred.
	 * @param previousAdmin Address of the previous admin.
	 * @param newProxyAdmin Address of the new admin.
	 */
	event ProxyAdminChanged(address previousAdmin, address newProxyAdmin);

	/**
	 * @dev Storage slot with the admin of the contract.
	 * This is the keccak-256 hash of "org.zeppelinos.proxy.admin", and is
	 * validated in the constructor.
	 */
  	bytes32 internal constant ADMIN_SLOT = 0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b;

  	/**
	 * @dev Modifier to check whether the `msg.sender` is the admin.
	 * If it is, it will run the function. Otherwise, it will delegate the call
	 * to the implementation.
	 */
	modifier ifProxyAdmin() {
		if (msg.sender == _proxyAdmin()) {
		    _;
		} else {
		    _fallback();
		}
	}

	/**
	 * @return The address of the proxy admin.
	 */
	function proxyAdmin() external view returns (address) {
		return _proxyAdmin();
	}

	/**
	 * @return The version of logic contract
	 */
	function proxyVersion() external view returns (string memory) {
		return _version;
	}

	/**
	 * @return The address of the implementation.
	 */
	function proxyImplementation() external view returns (address) {
		return _implementation();
	}

	/**
	 * @dev Changes the admin of the proxy.
	 * Only the current admin can call this function.
	 * @param newProxyAdmin Address to transfer proxy administration to.
	 */
	function changeProxyAdmin(address newProxyAdmin) external ifProxyAdmin {
		require(newProxyAdmin != address(0), "Cannot change the admin of a proxy to the zero address");
		emit ProxyAdminChanged(_proxyAdmin(), newProxyAdmin);
		_setProxyAdmin(newProxyAdmin);
	}

	/**
	 * @dev Upgrade the backing implementation of the proxy.
	 * Only the admin can call this function.
	 * @param newImplementation Address of the new implementation.
	 * @param newVersion of proxied contract.
	 */
	function upgradeProxyTo(address newImplementation, string calldata newVersion) external ifProxyAdmin {
		_upgradeProxyTo(newImplementation, newVersion);
	}

	/**
	 * @dev Upgrade the backing implementation of the proxy and call a function
	 * on the new implementation.
	 * This is useful to initialize the proxied contract.
	 * @param newImplementation Address of the new implementation.
	 * @param newVersion of proxied contract.
	 * @param data Data to send as msg.data in the low level call.
	 * It should include the signature and the parameters of the function to be called, as described in
	 * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.
	 */
	function upgradeProxyToAndCall(address newImplementation, string calldata newVersion, bytes calldata data) payable external ifProxyAdmin {
		_upgradeProxyTo(newImplementation, newVersion);
		(bool success,) = newImplementation.delegatecall(data);
		require(success);
	}

	/**
	 * @return The admin slot.
	 */
	function _proxyAdmin() internal view returns (address adm) {
		bytes32 slot = ADMIN_SLOT;
		assembly {
    		adm := sload(slot)
		}
	}

	/**
	 * @dev Sets the address of the proxy admin.
	 * @param newProxyAdmin Address of the new proxy admin.
	 */
	function _setProxyAdmin(address newProxyAdmin) internal {
		bytes32 slot = ADMIN_SLOT;

		assembly {
			sstore(slot, newProxyAdmin)
		}
	}

	/**
	 * @dev Only fall back when the sender is not the admin.
	 */
	function _willFallback() internal {
		require(msg.sender != _proxyAdmin(), "Cannot call fallback function from the proxy admin");
		super._willFallback();
	}
}

// File: 0.5-contracts/normal_deployment/racing/RacingProxy.sol

pragma solidity ^0.5.8;



/**
 * @title RacingProxy
 * @dev Extends from BaseAdminUpgradeabilityProxy with a constructor for
 * initializing the implementation, admin, and init data.
 */
contract RacingProxy is BaseAdminUpgradeabilityProxy, UpgradeabilityProxy {
	/**
	 * Contract constructor.
	 * @param _logic address of the initial implementation.
	 * @param _admin Address of the proxy administrator.
	 */
	constructor(address _logic, address _admin) UpgradeabilityProxy(_logic) public payable {
		assert(ADMIN_SLOT == keccak256("org.zeppelinos.proxy.admin"));
		_setProxyAdmin(_admin);
	}
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"proxyImplementation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"Cancelled_Races","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"ID_Saved","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newImplementation","type":"address"},{"name":"newVersion","type":"string"}],"name":"upgradeProxyTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"proxyAdmin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proxyVersion","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"renounceAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceFeeWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"Is_Authorized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"Races","outputs":[{"name":"Track_Name","type":"string"},{"name":"Race_ID","type":"bytes32"},{"name":"Length","type":"uint256"},{"name":"Horses_Registered","type":"uint256"},{"name":"Unix_Start","type":"uint256"},{"name":"Entrance_Fee","type":"uint256"},{"name":"Prize_Pool","type":"uint256"},{"name":"Horses_Allowed","type":"uint256"},{"name":"Race_State","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newProxyAdmin","type":"address"}],"name":"changeProxyAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isFeeWallet","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"Owner_Horse","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newFeeWallet","type":"address"}],"name":"transferFeeWalletOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"Horse_Active_Races","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feeWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"Position_To_Payment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newImplementation","type":"address"},{"name":"newVersion","type":"string"},{"name":"data","type":"bytes"}],"name":"upgradeProxyToAndCall","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"Has_Zed_Claimed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_logic","type":"address"},{"name":"_admin","type":"address"}],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousAdmin","type":"address"},{"indexed":false,"name":"newProxyAdmin","type":"address"}],"name":"ProxyAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousFeeWallet","type":"address"},{"indexed":true,"name":"newFeeWallet","type":"address"}],"name":"FeeWalletTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"AdminRemoved","type":"event"}]

608060405260405160408062002305833981018060405260408110156200002557600080fd5b8101908080519060200190929190805190602001909291905050508162000061620000556200017260201b60201c565b6200017a60201b60201c565b600160028190555060405180806200228560239139602301905060405180910390207f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360001b14620000af57fe5b620000f6816040518060400160405280600581526020017f312e302e30000000000000000000000000000000000000000000000000000000815250620001db60201b60201c565b5060405180807f6f72672e7a657070656c696e6f732e70726f78792e61646d696e000000000000815250601a01905060405180910390207f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60001b146200015957fe5b6200016a81620002a760201b60201c565b505062000595565b600033905090565b62000195816000620002d660201b620019af1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a250565b620002078273ffffffffffffffffffffffffffffffffffffffff16620003ba60201b62001a8a1760201c565b6200025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180620022ca603b913960400191505060405180910390fd5b80600d908051906020019062000276929190620004e6565b5060007f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360001b9050828155505050565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60001b90508181555050565b620002e882826200040660201b60201c565b156200035c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b8214158015620003fd5750808214155b92505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200048f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620022a86022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200052957805160ff19168380011785556200055a565b828001600101855582156200055a579182015b82811115620005595782518255916020019190600101906200053c565b5b5090506200056991906200056d565b5090565b6200059291905b808211156200058e57600081600090555060010162000574565b5090565b90565b611ce080620005a56000396000f3fe60806040526004361061012a5760003560e01c806380c965a5116100ab578063d23587d71161006f578063d23587d71461079f578063f2136f23146107f0578063f25f4b561461083f578063f9114c9314610896578063f99eec8d146108e5578063fb80f303146109d35761012a565b806380c965a51461054157806384675360146105aa5780639f712f2f146106a4578063aeab1c68146106f5578063c548e082146107245761012a565b80633e47158c116100f25780633e47158c146103a15780635e068da5146103f85780635e1fab0f1461048857806370480275146104d957806370a34c7c1461052a5761012a565b80630c870f91146101345780631e27daf01461018b57806324d7806c1461023f57806325c719d6146102a857806332952b66146102fb575b610132610a26565b005b34801561014057600080fd5b50610149610a40565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561019757600080fd5b506101c4600480360360208110156101ae57600080fd5b8101908080359060200190929190505050610a4f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102045780820151818401526020810190506101e9565b50505050905090810190601f1680156102315780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024b57600080fd5b5061028e6004803603602081101561026257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aff565b604051808215151515815260200191505060405180910390f35b3480156102b457600080fd5b506102e1600480360360208110156102cb57600080fd5b8101908080359060200190929190505050610b1c565b604051808215151515815260200191505060405180910390f35b34801561030757600080fd5b5061039f6004803603604081101561031e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561035b57600080fd5b82018360208201111561036d57600080fd5b8035906020019184600183028401116401000000008311171561038f57600080fd5b9091929391929390505050610b3c565b005b3480156103ad57600080fd5b506103b6610bd8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040457600080fd5b5061040d610be7565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561044d578082015181840152602081019050610432565b50505050905090810190601f16801561047a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049457600080fd5b506104d7600480360360208110156104ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c89565b005b3480156104e557600080fd5b50610528600480360360208110156104fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cfa565b005b34801561053657600080fd5b5061053f610d6b565b005b34801561054d57600080fd5b506105906004803603602081101561056457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e91565b604051808215151515815260200191505060405180910390f35b3480156105b657600080fd5b506105e3600480360360208110156105cd57600080fd5b8101908080359060200190929190505050610eb1565b60405180806020018a815260200189815260200188815260200187815260200186815260200185815260200184815260200183600481111561062157fe5b60ff16815260200182810382528b818151815260200191508051906020019080838360005b83811015610661578082015181840152602081019050610646565b50505050905090810190601f16801561068e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3480156106b057600080fd5b506106f3600480360360208110156106c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fa4565b005b34801561070157600080fd5b5061070a61111d565b604051808215151515815260200191505060405180910390f35b34801561073057600080fd5b5061075d6004803603602081101561074757600080fd5b810190808035906020019092919050505061117c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107ab57600080fd5b506107ee600480360360208110156107c257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111af565b005b3480156107fc57600080fd5b506108296004803603602081101561081357600080fd5b8101908080359060200190929190505050611220565b6040518082815260200191505060405180910390f35b34801561084b57600080fd5b50610854611238565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108a257600080fd5b506108cf600480360360208110156108b957600080fd5b8101908080359060200190929190505050611262565b6040518082815260200191505060405180910390f35b6109d1600480360360608110156108fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561093857600080fd5b82018360208201111561094a57600080fd5b8035906020019184600183028401116401000000008311171561096c57600080fd5b90919293919293908035906020019064010000000081111561098d57600080fd5b82018360208201111561099f57600080fd5b803590602001918460018302840111640100000000831117156109c157600080fd5b909192939192939050505061127a565b005b3480156109df57600080fd5b50610a0c600480360360208110156109f657600080fd5b8101908080359060200190929190505050611397565b604051808215151515815260200191505060405180910390f35b610a2e6113b7565b610a3e610a3961144d565b61147e565b565b6000610a4a61144d565b905090565b60096020528060005260406000206000915090508054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610af75780601f10610acc57610100808354040283529160200191610af7565b820191906000526020600020905b815481529060010190602001808311610ada57829003601f168201915b505050505081565b6000610b158260006114a490919063ffffffff16565b9050919050565b60066020528060005260406000206000915054906101000a900460ff1681565b610b44611582565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610bca57610bc58383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115b3565b610bd3565b610bd2610a26565b5b505050565b6000610be2611582565b905090565b6060600d8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c7f5780601f10610c5457610100808354040283529160200191610c7f565b820191906000526020600020905b815481529060010190602001808311610c6257829003601f168201915b5050505050905090565b610c99610c94611604565b610aff565b610cee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611c87602e913960400191505060405180910390fd5b610cf78161160c565b50565b610d0a610d05611604565b610aff565b610d5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611c87602e913960400191505060405180910390fd5b610d6881611666565b50565b610d7b610d76611604565b610aff565b610dd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611c87602e913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f84c9efad00ae50fa2cbd9c51134e8a8454b889ed600dc5e5833df6ecdcc80d4f60405160405180910390a36000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60086020528060005260406000206000915054906101000a900460ff1681565b6003602052806000526040600020600091509050806000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f5d5780601f10610f3257610100808354040283529160200191610f5d565b820191906000526020600020905b815481529060010190602001808311610f4057829003601f168201915b5050505050908060010154908060020154908060030154908060040154908060050154908060060154908060070154908060090160009054906101000a900460ff16905089565b610fac611582565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561111157600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611065576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180611bd36036913960400191505060405180910390fd5b7fe923ce5ee469e989477ed664be643fb92d252573aad00209ddad9452b5414a8961108e611582565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161110c816116c0565b61111a565b611119610a26565b5b50565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611160611604565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111bf6111ba611604565b610aff565b611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611c87602e913960400191505060405180910390fd5b61121d816116ef565b50565b60056020528060005260406000206000915090505481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60076020528060005260406000206000915090505481565b611282611582565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611387576113038585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115b3565b60008573ffffffffffffffffffffffffffffffffffffffff168383604051808383808284378083019250505092505050600060405180830381855af49150503d806000811461136e576040519150601f19603f3d011682016040523d82523d6000602084013e611373565b606091505b505090508061138157600080fd5b50611390565b61138f610a26565b5b5050505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6113bf611582565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611443576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611b7b6032913960400191505060405180910390fd5b61144b611835565b565b6000807f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360001b9050805491505090565b3660008037600080366000845af43d6000803e806000811461149f573d6000f35b3d6000fd5b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561152b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611c2a6022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000807f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60001b9050805491505090565b6115bd8282611837565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25050565b600033905090565b6116208160006118f290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a250565b61167a8160006119af90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a250565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60001b90508181555050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611775576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611bad6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f84c9efad00ae50fa2cbd9c51134e8a8454b889ed600dc5e5833df6ecdcc80d4f60405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b565b6118568273ffffffffffffffffffffffffffffffffffffffff16611a8a565b6118ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180611c4c603b913960400191505060405180910390fd5b80600d90805190602001906118c1929190611ad5565b5060007f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360001b9050828155505050565b6118fc82826114a4565b611951576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611c096021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6119b982826114a4565b15611a2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b8214158015611acc5750808214155b92505050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611b1657805160ff1916838001178555611b44565b82800160010185558215611b44579182015b82811115611b43578251825591602001919060010190611b28565b5b509050611b519190611b55565b5090565b611b7791905b80821115611b73576000816000905550600101611b5b565b5090565b9056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737343616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f2061646472657373526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e7472616374206164647265737341646d696e526f6c653a2063616c6c657220646f6573206e6f742068617665207468652041646d696e20726f6c65a165627a7a723058208b35abd98c52eef8a35d3d805b8ea37b7949fc75702ddd5bbda5eebb0c4faa9500296f72672e7a657070656c696e6f732e70726f78792e696d706c656d656e746174696f6e526f6c65733a206163636f756e7420697320746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000000000000000000d82556c2470c3d4331e6ea6ab9543581db6bcedd000000000000000000000000528c53dcbf0cc7530f6cd0b4a11934af209bb82a

Deployed Bytecode

0x60806040526004361061012a5760003560e01c806380c965a5116100ab578063d23587d71161006f578063d23587d71461079f578063f2136f23146107f0578063f25f4b561461083f578063f9114c9314610896578063f99eec8d146108e5578063fb80f303146109d35761012a565b806380c965a51461054157806384675360146105aa5780639f712f2f146106a4578063aeab1c68146106f5578063c548e082146107245761012a565b80633e47158c116100f25780633e47158c146103a15780635e068da5146103f85780635e1fab0f1461048857806370480275146104d957806370a34c7c1461052a5761012a565b80630c870f91146101345780631e27daf01461018b57806324d7806c1461023f57806325c719d6146102a857806332952b66146102fb575b610132610a26565b005b34801561014057600080fd5b50610149610a40565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561019757600080fd5b506101c4600480360360208110156101ae57600080fd5b8101908080359060200190929190505050610a4f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102045780820151818401526020810190506101e9565b50505050905090810190601f1680156102315780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024b57600080fd5b5061028e6004803603602081101561026257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aff565b604051808215151515815260200191505060405180910390f35b3480156102b457600080fd5b506102e1600480360360208110156102cb57600080fd5b8101908080359060200190929190505050610b1c565b604051808215151515815260200191505060405180910390f35b34801561030757600080fd5b5061039f6004803603604081101561031e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561035b57600080fd5b82018360208201111561036d57600080fd5b8035906020019184600183028401116401000000008311171561038f57600080fd5b9091929391929390505050610b3c565b005b3480156103ad57600080fd5b506103b6610bd8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040457600080fd5b5061040d610be7565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561044d578082015181840152602081019050610432565b50505050905090810190601f16801561047a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049457600080fd5b506104d7600480360360208110156104ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c89565b005b3480156104e557600080fd5b50610528600480360360208110156104fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cfa565b005b34801561053657600080fd5b5061053f610d6b565b005b34801561054d57600080fd5b506105906004803603602081101561056457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e91565b604051808215151515815260200191505060405180910390f35b3480156105b657600080fd5b506105e3600480360360208110156105cd57600080fd5b8101908080359060200190929190505050610eb1565b60405180806020018a815260200189815260200188815260200187815260200186815260200185815260200184815260200183600481111561062157fe5b60ff16815260200182810382528b818151815260200191508051906020019080838360005b83811015610661578082015181840152602081019050610646565b50505050905090810190601f16801561068e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3480156106b057600080fd5b506106f3600480360360208110156106c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fa4565b005b34801561070157600080fd5b5061070a61111d565b604051808215151515815260200191505060405180910390f35b34801561073057600080fd5b5061075d6004803603602081101561074757600080fd5b810190808035906020019092919050505061117c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107ab57600080fd5b506107ee600480360360208110156107c257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111af565b005b3480156107fc57600080fd5b506108296004803603602081101561081357600080fd5b8101908080359060200190929190505050611220565b6040518082815260200191505060405180910390f35b34801561084b57600080fd5b50610854611238565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108a257600080fd5b506108cf600480360360208110156108b957600080fd5b8101908080359060200190929190505050611262565b6040518082815260200191505060405180910390f35b6109d1600480360360608110156108fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561093857600080fd5b82018360208201111561094a57600080fd5b8035906020019184600183028401116401000000008311171561096c57600080fd5b90919293919293908035906020019064010000000081111561098d57600080fd5b82018360208201111561099f57600080fd5b803590602001918460018302840111640100000000831117156109c157600080fd5b909192939192939050505061127a565b005b3480156109df57600080fd5b50610a0c600480360360208110156109f657600080fd5b8101908080359060200190929190505050611397565b604051808215151515815260200191505060405180910390f35b610a2e6113b7565b610a3e610a3961144d565b61147e565b565b6000610a4a61144d565b905090565b60096020528060005260406000206000915090508054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610af75780601f10610acc57610100808354040283529160200191610af7565b820191906000526020600020905b815481529060010190602001808311610ada57829003601f168201915b505050505081565b6000610b158260006114a490919063ffffffff16565b9050919050565b60066020528060005260406000206000915054906101000a900460ff1681565b610b44611582565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610bca57610bc58383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115b3565b610bd3565b610bd2610a26565b5b505050565b6000610be2611582565b905090565b6060600d8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c7f5780601f10610c5457610100808354040283529160200191610c7f565b820191906000526020600020905b815481529060010190602001808311610c6257829003601f168201915b5050505050905090565b610c99610c94611604565b610aff565b610cee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611c87602e913960400191505060405180910390fd5b610cf78161160c565b50565b610d0a610d05611604565b610aff565b610d5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611c87602e913960400191505060405180910390fd5b610d6881611666565b50565b610d7b610d76611604565b610aff565b610dd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611c87602e913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f84c9efad00ae50fa2cbd9c51134e8a8454b889ed600dc5e5833df6ecdcc80d4f60405160405180910390a36000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60086020528060005260406000206000915054906101000a900460ff1681565b6003602052806000526040600020600091509050806000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f5d5780601f10610f3257610100808354040283529160200191610f5d565b820191906000526020600020905b815481529060010190602001808311610f4057829003601f168201915b5050505050908060010154908060020154908060030154908060040154908060050154908060060154908060070154908060090160009054906101000a900460ff16905089565b610fac611582565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561111157600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611065576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180611bd36036913960400191505060405180910390fd5b7fe923ce5ee469e989477ed664be643fb92d252573aad00209ddad9452b5414a8961108e611582565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161110c816116c0565b61111a565b611119610a26565b5b50565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611160611604565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111bf6111ba611604565b610aff565b611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611c87602e913960400191505060405180910390fd5b61121d816116ef565b50565b60056020528060005260406000206000915090505481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60076020528060005260406000206000915090505481565b611282611582565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611387576113038585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115b3565b60008573ffffffffffffffffffffffffffffffffffffffff168383604051808383808284378083019250505092505050600060405180830381855af49150503d806000811461136e576040519150601f19603f3d011682016040523d82523d6000602084013e611373565b606091505b505090508061138157600080fd5b50611390565b61138f610a26565b5b5050505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6113bf611582565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611443576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611b7b6032913960400191505060405180910390fd5b61144b611835565b565b6000807f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360001b9050805491505090565b3660008037600080366000845af43d6000803e806000811461149f573d6000f35b3d6000fd5b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561152b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611c2a6022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000807f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60001b9050805491505090565b6115bd8282611837565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25050565b600033905090565b6116208160006118f290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a250565b61167a8160006119af90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a250565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60001b90508181555050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611775576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611bad6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f84c9efad00ae50fa2cbd9c51134e8a8454b889ed600dc5e5833df6ecdcc80d4f60405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b565b6118568273ffffffffffffffffffffffffffffffffffffffff16611a8a565b6118ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180611c4c603b913960400191505060405180910390fd5b80600d90805190602001906118c1929190611ad5565b5060007f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360001b9050828155505050565b6118fc82826114a4565b611951576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611c096021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6119b982826114a4565b15611a2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b8214158015611acc5750808214155b92505050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611b1657805160ff1916838001178555611b44565b82800160010185558215611b44579182015b82811115611b43578251825591602001919060010190611b28565b5b509050611b519190611b55565b5090565b611b7791905b80821115611b73576000816000905550600101611b5b565b5090565b9056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737343616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f2061646472657373526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e7472616374206164647265737341646d696e526f6c653a2063616c6c657220646f6573206e6f742068617665207468652041646d696e20726f6c65a165627a7a723058208b35abd98c52eef8a35d3d805b8ea37b7949fc75702ddd5bbda5eebb0c4faa950029

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

000000000000000000000000d82556c2470c3d4331e6ea6ab9543581db6bcedd000000000000000000000000528c53dcbf0cc7530f6cd0b4a11934af209bb82a

-----Decoded View---------------
Arg [0] : _logic (address): 0xd82556C2470c3D4331E6EA6Ab9543581DB6bceDd
Arg [1] : _admin (address): 0x528c53dCBf0Cc7530F6CD0B4a11934af209Bb82a

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000d82556c2470c3d4331e6ea6ab9543581db6bcedd
Arg [1] : 000000000000000000000000528c53dcbf0cc7530f6cd0b4a11934af209bb82a


Deployed Bytecode Sourcemap

22072:418:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10082:11;:9;:11::i;:::-;22072:418;19348:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19348:97:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7758:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7758:49:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7758:49:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7758:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4358:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4358:107:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4358:107:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7395:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7395:40:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7395:40:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20122:157;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20122:157:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20122:157:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;20122:157:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;20122:157:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;20122:157:0;;;;;;;;;;;;:::i;:::-;;19052:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19052:84:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19196:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19196:87:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;19196:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4570:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4570:97:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4570:97:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;4473:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4473:89:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4473:89:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6075:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6075:148:0;;;:::i;:::-;;7654:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7654:45:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7654:45:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7133:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7133:37:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7133:37:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7133:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19627:266;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19627:266:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19627:266:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5729:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5729:102:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7208:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7208:46:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7208:46:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6373:143;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6373:143:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6373:143:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;7287:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7287:53:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7287:53:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5311:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5311:95:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7511:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7511:54:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7511:54:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20841:273;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20841:273:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;20841:273:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;20841:273:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;20841:273:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;20841:273:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;20841:273:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;20841:273:0;;;;;;;;;;;;:::i;:::-;;7874:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7874:47:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7874:47:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10194:88;10229:15;:13;:15::i;:::-;10249:28;10259:17;:15;:17::i;:::-;10249:9;:28::i;:::-;10194:88::o;19348:97::-;19402:7;19423:17;:15;:17::i;:::-;19416:24;;19348:97;:::o;7758:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4358:107::-;4413:4;4437:20;4449:7;4437;:11;;:20;;;;:::i;:::-;4430:27;;4358:107;;;:::o;7395:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;20122:157::-;18923:13;:11;:13::i;:::-;18909:27;;:10;:27;;;18905:81;;;20228:46;20244:17;20263:10;;20228:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;20228:46:0;;;;;;:15;:46::i;:::-;18905:81;;;18969:11;:9;:11::i;:::-;18905:81;20122:157;;;:::o;19052:84::-;19097:7;19118:13;:11;:13::i;:::-;19111:20;;19052:84;:::o;19196:87::-;19243:13;19270:8;19263:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19196:87;:::o;4570:97::-;4258:21;4266:12;:10;:12::i;:::-;4258:7;:21::i;:::-;4250:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4638:21;4651:7;4638:12;:21::i;:::-;4570:97;:::o;4473:89::-;4258:21;4266:12;:10;:12::i;:::-;4258:7;:21::i;:::-;4250:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4536:18;4546:7;4536:9;:18::i;:::-;4473:89;:::o;6075:148::-;4258:21;4266:12;:10;:12::i;:::-;4258:7;:21::i;:::-;4250:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6178:1;6137:44;;6158:10;;;;;;;;;;;6137:44;;;;;;;;;;;;6213:1;6192:10;;:23;;;;;;;;;;;;;;;;;;6075:148::o;7654:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;7133:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19627:266::-;18923:13;:11;:13::i;:::-;18909:27;;:10;:27;;;18905:81;;;19736:1;19711:27;;:13;:27;;;;19703:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19807:47;19825:13;:11;:13::i;:::-;19840;19807:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19859:29;19874:13;19859:14;:29::i;:::-;18905:81;;;18969:11;:9;:11::i;:::-;18905:81;19627:266;:::o;5729:102::-;5773:4;5813:10;;;;;;;;;;;5797:26;;:12;:10;:12::i;:::-;:26;;;5790:33;;5729:102;:::o;7208:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;6373:143::-;4258:21;4266:12;:10;:12::i;:::-;4258:7;:21::i;:::-;4250:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6467:41;6495:12;6467:27;:41::i;:::-;6373:143;:::o;7287:53::-;;;;;;;;;;;;;;;;;:::o;5311:95::-;5353:15;5388:10;;;;;;;;;;;5381:17;;5311:95;:::o;7511:54::-;;;;;;;;;;;;;;;;;:::o;20841:273::-;18923:13;:11;:13::i;:::-;18909:27;;:10;:27;;;18905:81;;;20983:46;20999:17;21018:10;;20983:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;20983:46:0;;;;;;:15;:46::i;:::-;21035:12;21052:17;:30;;21083:4;;21052:36;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;21052:36:0;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;21034:54:0;;;21101:7;21093:16;;;;;;18947:1;18905:81;;;18969:11;:9;:11::i;:::-;18905:81;20841:273;;;;;:::o;7874:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;21641:160::-;21702:13;:11;:13::i;:::-;21688:27;;:10;:27;;;;21680:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21775:21;:19;:21::i;:::-;21641:160::o;15919:154::-;15969:12;15988;15557:66;16003:19;;15988:34;;16059:4;16053:11;16045:19;;16036:33;;:::o;10815:708::-;11108:12;11105:1;11102;11089:32;11293:1;11290;11276:12;11273:1;11257:14;11252:3;11239:56;11354:14;11351:1;11348;11333:36;11383:6;11439:1;11434:36;;;;11495:14;11492:1;11485:25;11434:36;11453:14;11450:1;11443:25;3625:203;3697:4;3741:1;3722:21;;:7;:21;;;;3714:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3800:4;:11;;:20;3812:7;3800:20;;;;;;;;;;;;;;;;;;;;;;;;;3793:27;;3625:203;;;;:::o;21160:139::-;21206:11;21224:12;18617:66;21239:10;;21224:25;;21285:4;21279:11;21272:18;;21263:32;;:::o;16253:190::-;16345:54;16369:17;16388:10;16345:23;:54::i;:::-;16420:17;16411:27;;;;;;;;;;;;16253:190;;:::o;2424:98::-;2469:15;2504:10;2497:17;;2424:98;:::o;4802:127::-;4861:23;4876:7;4861;:14;;:23;;;;:::i;:::-;4913:7;4900:21;;;;;;;;;;;;4802:127;:::o;4675:119::-;4731:20;4743:7;4731;:11;;:20;;;;:::i;:::-;4778:7;4767:19;;;;;;;;;;;;4675:119;:::o;21421:144::-;21482:12;18617:66;21497:10;;21482:25;;21542:13;21536:4;21529:27;21523:38;;:::o;6628:270::-;6747:1;6723:26;;:12;:26;;;;6715:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6841:12;6808:46;;6829:10;;;;;;;;;;;6808:46;;;;;;;;;;;;6878:12;6865:10;;:25;;;;;;;;;;;;;;;;;;6628:270;:::o;10492:36::-;:::o;16625:337::-;16733:30;:17;:28;;;:30::i;:::-;16725:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16846:10;16835:8;:21;;;;;;;;;;;;:::i;:::-;;16863:12;15557:66;16878:19;;16863:34;;16935:17;16929:4;16922:31;16913:45;;;:::o;3347:183::-;3427:18;3431:4;3437:7;3427:3;:18::i;:::-;3419:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3517:5;3494:4;:11;;:20;3506:7;3494:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;3347:183;;:::o;3089:178::-;3167:18;3171:4;3177:7;3167:3;:18::i;:::-;3166:19;3158:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3255:4;3232;:11;;:20;3244:7;3232:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3089:178;;:::o;12282:810::-;12342:4;12795:16;12822:19;12844:66;12822:88;;;;13013:7;13001:20;12989:32;;13053:3;13041:15;;:8;:15;;:42;;;;;13072:11;13060:8;:23;;13041:42;13033:51;;;;12282:810;;;:::o;22072:418::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://8b35abd98c52eef8a35d3d805b8ea37b7949fc75702ddd5bbda5eebb0c4faa95

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.