ETH Price: $2,436.29 (-9.55%)

Contract

0xd3E8e563C9d8aB7b8BDc0C3E6Af62dcdb5deD7Fc

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Withdraw In Toke...1173938892023-08-02 11:03:52913 days ago1690974232IN
0xd3E8e563...db5deD7Fc
0 ETH0.000037160.1
Withdraw In Toke...819295412023-04-19 1:33:411019 days ago1681868021IN
0xd3E8e563...db5deD7Fc
0 ETH0.000073510.1
Withdraw In Toke...814668262023-04-17 17:19:161020 days ago1681751956IN
0xd3E8e563...db5deD7Fc
0 ETH0.000076430.1
Withdraw In Toke...814496262023-04-17 16:08:001020 days ago1681747680IN
0xd3E8e563...db5deD7Fc
0 ETH0.000070190.1
Withdraw In Toke...808609772023-04-15 23:13:521022 days ago1681600432IN
0xd3E8e563...db5deD7Fc
0 ETH0.000048850.1
Withdraw In Toke...808394302023-04-15 21:41:531022 days ago1681594913IN
0xd3E8e563...db5deD7Fc
0 ETH0.000049190.1
Withdraw In Toke...803547742023-04-14 11:55:221023 days ago1681473322IN
0xd3E8e563...db5deD7Fc
0 ETH0.000050780.1
Withdraw In Toke...802270142023-04-14 3:03:511024 days ago1681441431IN
0xd3E8e563...db5deD7Fc
0 ETH0.000058550.1
Withdraw In Toke...799820022023-04-13 9:49:281024 days ago1681379368IN
0xd3E8e563...db5deD7Fc
0 ETH0.000072580.1
Withdraw In Toke...797666552023-04-12 18:26:141025 days ago1681323974IN
0xd3E8e563...db5deD7Fc
0 ETH0.000054590.1
Withdraw In Toke...795888012023-04-12 6:05:381025 days ago1681279538IN
0xd3E8e563...db5deD7Fc
0 ETH0.000040470.1
Withdraw In Toke...794068692023-04-11 17:06:031026 days ago1681232763IN
0xd3E8e563...db5deD7Fc
0 ETH0.000064210.1
Withdraw In Toke...793091972023-04-11 10:20:061026 days ago1681208406IN
0xd3E8e563...db5deD7Fc
0 ETH0.000045120.1
Withdraw In Toke...787384012023-04-09 18:10:141028 days ago1681063814IN
0xd3E8e563...db5deD7Fc
0 ETH0.000049320.1
Withdraw In Toke...783438382023-04-08 14:26:591029 days ago1680964019IN
0xd3E8e563...db5deD7Fc
0 ETH0.000043460.1
Withdraw In Toke...782067292023-04-08 4:56:291030 days ago1680929789IN
0xd3E8e563...db5deD7Fc
0 ETH0.000042760.1
Withdraw In Toke...781033202023-04-07 21:27:301030 days ago1680902850IN
0xd3E8e563...db5deD7Fc
0 ETH0.000046910.1
Withdraw In Toke...780078542023-04-07 14:41:181030 days ago1680878478IN
0xd3E8e563...db5deD7Fc
0 ETH0.000052890.1
Withdraw In Toke...778866672023-04-07 6:17:041030 days ago1680848224IN
0xd3E8e563...db5deD7Fc
0 ETH0.000040180.1
Withdraw In Toke...778841052023-04-07 6:06:261030 days ago1680847586IN
0xd3E8e563...db5deD7Fc
0 ETH0.000043460.1
Withdraw In Toke...776693222023-04-06 14:51:571031 days ago1680792717IN
0xd3E8e563...db5deD7Fc
0 ETH0.000055030.1
Withdraw In Toke...775655702023-04-06 7:42:561031 days ago1680766976IN
0xd3E8e563...db5deD7Fc
0 ETH0.00005310.1
Withdraw In Toke...774605902023-04-06 0:21:281032 days ago1680740488IN
0xd3E8e563...db5deD7Fc
0 ETH0.000052790.1
Withdraw In Toke...774184752023-04-05 21:16:251032 days ago1680729385IN
0xd3E8e563...db5deD7Fc
0 ETH0.000063770.1
Withdraw In Toke...773177362023-04-05 14:14:311032 days ago1680704071IN
0xd3E8e563...db5deD7Fc
0 ETH0.000063080.1
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
720854432023-03-21 10:13:431047 days ago1679393623
0xd3E8e563...db5deD7Fc
0 ETH
720854432023-03-21 10:13:431047 days ago1679393623
0xd3E8e563...db5deD7Fc
0 ETH
720854432023-03-21 10:13:431047 days ago1679393623
0xd3E8e563...db5deD7Fc
0 ETH
720854432023-03-21 10:13:431047 days ago1679393623
0xd3E8e563...db5deD7Fc
0 ETH
720759572023-03-21 9:34:351047 days ago1679391275
0xd3E8e563...db5deD7Fc
0 ETH
720759572023-03-21 9:34:351047 days ago1679391275
0xd3E8e563...db5deD7Fc
0 ETH
720759572023-03-21 9:34:351047 days ago1679391275
0xd3E8e563...db5deD7Fc
0 ETH
720759572023-03-21 9:34:351047 days ago1679391275
0xd3E8e563...db5deD7Fc
0 ETH
720748742023-03-21 9:30:091047 days ago1679391009
0xd3E8e563...db5deD7Fc
0 ETH
720748742023-03-21 9:30:091047 days ago1679391009
0xd3E8e563...db5deD7Fc
0 ETH
720748742023-03-21 9:30:091047 days ago1679391009
0xd3E8e563...db5deD7Fc
0 ETH
720748742023-03-21 9:30:091047 days ago1679391009
0xd3E8e563...db5deD7Fc
0 ETH
720650112023-03-21 8:49:421047 days ago1679388582
0xd3E8e563...db5deD7Fc
0 ETH
720650112023-03-21 8:49:421047 days ago1679388582
0xd3E8e563...db5deD7Fc
0 ETH
720646202023-03-21 8:48:121047 days ago1679388492
0xd3E8e563...db5deD7Fc
0 ETH
720646202023-03-21 8:48:121047 days ago1679388492
0xd3E8e563...db5deD7Fc
0 ETH
720646202023-03-21 8:48:121047 days ago1679388492
0xd3E8e563...db5deD7Fc
0 ETH
720646202023-03-21 8:48:121047 days ago1679388492
0xd3E8e563...db5deD7Fc
0 ETH
720641772023-03-21 8:46:211047 days ago1679388381
0xd3E8e563...db5deD7Fc
0 ETH
720641772023-03-21 8:46:211047 days ago1679388381
0xd3E8e563...db5deD7Fc
0 ETH
720641772023-03-21 8:46:211047 days ago1679388381
0xd3E8e563...db5deD7Fc
0 ETH
720641772023-03-21 8:46:211047 days ago1679388381
0xd3E8e563...db5deD7Fc
0 ETH
720570082023-03-21 8:17:001047 days ago1679386620
0xd3E8e563...db5deD7Fc
0 ETH
720570082023-03-21 8:17:001047 days ago1679386620
0xd3E8e563...db5deD7Fc
0 ETH
720570082023-03-21 8:17:001047 days ago1679386620
0xd3E8e563...db5deD7Fc
0 ETH
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Brothels

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan.io on 2023-02-01
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.17;


//  __   __    _                  ___ __ ________
//  \ \ / /_ _| |___  _ _____ _  |_  )  \__ /__ /
//   \ V / _` | / / || |_ / _` |  / / () |_ \|_ \
//    |_|\__,_|_\_\\_,_/__\__,_| /___\__/___/___/


//  / __| |_  ___  __ _ _  _ _ _                 
//  \__ \ ' \/ _ \/ _` | || | ' \                
//  |___/_||_\___/\__, |\_,_|_||_|               
//                |___/                          


// (•_•)
// ( •_•)>⌐■-■
// (⌐■_■)


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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


// File @openzeppelin/contracts/access/[email protected]
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.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() {
        _transferOwnership(_msgSender());
    }

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

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        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 {
        _transferOwnership(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");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}


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


// File @openzeppelin/contracts/token/ERC1155/[email protected]
// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/IERC1155Receiver.sol)
/**
 * @dev _Available since v3.1._
 */
interface IERC1155Receiver is IERC165 {
    /**
     * @dev Handles the receipt of a single ERC1155 token type. This function is
     * called at the end of a `safeTransferFrom` after the balance has been updated.
     *
     * NOTE: To accept the transfer, this must return
     * `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))`
     * (i.e. 0xf23a6e61, or its own function selector).
     *
     * @param operator The address which initiated the transfer (i.e. msg.sender)
     * @param from The address which previously owned the token
     * @param id The ID of the token being transferred
     * @param value The amount of tokens being transferred
     * @param data Additional data with no specified format
     * @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed
     */
    function onERC1155Received(
        address operator,
        address from,
        uint256 id,
        uint256 value,
        bytes calldata data
    ) external returns (bytes4);

    /**
     * @dev Handles the receipt of a multiple ERC1155 token types. This function
     * is called at the end of a `safeBatchTransferFrom` after the balances have
     * been updated.
     *
     * NOTE: To accept the transfer(s), this must return
     * `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))`
     * (i.e. 0xbc197c81, or its own function selector).
     *
     * @param operator The address which initiated the batch transfer (i.e. msg.sender)
     * @param from The address which previously owned the token
     * @param ids An array containing ids of each token being transferred (order and length must match values array)
     * @param values An array containing amounts of each token being transferred (order and length must match ids array)
     * @param data Additional data with no specified format
     * @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed
     */
    function onERC1155BatchReceived(
        address operator,
        address from,
        uint256[] calldata ids,
        uint256[] calldata values,
        bytes calldata data
    ) external returns (bytes4);
}


// File @openzeppelin/contracts/utils/introspection/[email protected]
// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)
/**
 * @dev Implementation of the {IERC165} interface.
 *
 * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
 * for the additional interface id that will be supported. For example:
 *
 * ```solidity
 * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
 *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
 * }
 * ```
 *
 * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.
 */
abstract contract ERC165 is IERC165 {
    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}


// File @openzeppelin/contracts/token/ERC1155/utils/[email protected]
// OpenZeppelin Contracts v4.4.1 (token/ERC1155/utils/ERC1155Receiver.sol)
/**
 * @dev _Available since v3.1._
 */
abstract contract ERC1155Receiver is ERC165, IERC1155Receiver {
    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {
        return interfaceId == type(IERC1155Receiver).interfaceId || super.supportsInterface(interfaceId);
    }
}


// File @openzeppelin/contracts/token/ERC1155/utils/[email protected]
// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/utils/ERC1155Holder.sol)
/**
 * Simple implementation of `ERC1155Receiver` that will allow a contract to hold ERC1155 tokens.
 *
 * IMPORTANT: When inheriting this contract, you must include a way to use the received tokens, otherwise they will be
 * stuck.
 *
 * @dev _Available since v3.1._
 */
contract ERC1155Holder is ERC1155Receiver {
    function onERC1155Received(
        address,
        address,
        uint256,
        uint256,
        bytes memory
    ) public virtual override returns (bytes4) {
        return this.onERC1155Received.selector;
    }

    function onERC1155BatchReceived(
        address,
        address,
        uint256[] memory,
        uint256[] memory,
        bytes memory
    ) public virtual override returns (bytes4) {
        return this.onERC1155BatchReceived.selector;
    }
}


// File @openzeppelin/contracts/security/[email protected]
// OpenZeppelin Contracts (last updated v4.8.0) (security/ReentrancyGuard.sol)
/**
 * @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.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    /**
     * @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 making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        // On the first call to nonReentrant, _status will be _NOT_ENTERED
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;
    }

    function _nonReentrantAfter() private {
        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}


// File contracts/utility/Permissions.sol
/**
 * @title A generic permissions-management contract for Yakuza 2033.
 *
 * @notice Yakuza 2033
 *             Telegram: t.me/yakuza2033
 *             Twitter:  yakuza2033
 *             App:      yakuza2033.com
 *
 * @author Shogun
 *             Telegram: zeroXshogun
 *             Web:      coinlord.finance
 *
 * @custom:security-contact Telegram: zeroXshogun
 */
contract Permissions is Context, Ownable {
    /// Accounts permitted to modify rules.
    mapping(address => bool) public appAddresses;

    modifier onlyApp() {
        require(appAddresses[_msgSender()] == true, "Caller is not admin");
        _;
    }

    constructor() {}

    function setPermission(address account, bool permitted)
        external
        onlyOwner
    {
        appAddresses[account] = permitted;
    }
}


// File contracts/yakuza/GloryAndInfamy.sol
/**
 * @title An experience tracking contract for Yakuza 2033.
 *
 * @notice Yakuza 2033
 *             Telegram: t.me/yakuza2033
 *             Twitter:  yakuza2033
 *             App:      yakuza2033.com
 *
 * @author Shogun
 *             Telegram: zeroXshogun
 *             Web:      coinlord.finance
 *
 * @custom:security-contact Telegram: zeroXshogun
 */
contract GloryAndInfamy is Permissions
{
    ////
    //// POINTS
    ////

    /// Yakuza members and their heroic prestige.
    mapping(address=> uint256) public glory;

    /// Yakuza members and their villainous prestige.
    mapping(address=> uint256) public infamy;

    ////
    //// INIT
    ////

    constructor() {}

    ////
    //// FUNCTIONS
    ////

    function addGlory(address account, uint256 _glory)
        external
        onlyApp
    {
        glory[account] += _glory;
    }

    function addInfamy(address account, uint256 _infamy)
        external
        onlyApp
    {
        infamy[account] += _infamy;
    }
}


// File contracts/operations/rackets/Staking.sol
interface IGenericToken {
    function decimals() external returns(uint8);
    function mint(address to, uint256 id, uint256 amount) external;
    function safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes memory data) external;
}


/**
 * @title A generic staking contract for Yakuza 2033.
 *
 * @notice Yakuza 2033
 *             Telegram: t.me/yakuza2033
 *             Twitter:  yakuza2033
 *             App:      yakuza2033.com
 *
 * @author Shogun
 *             Telegram: zeroXshogun
 *             Web:      coinlord.finance
 *
 * @custom:security-contact Telegram: zeroXshogun
 */
contract Staking is Permissions,
                    ReentrancyGuard,
                    ERC1155Holder
{
    ////
    //// ADDRESSES
    ////

    /// Token to be deposited.
    IGenericToken public inToken;

    /// NFT ID of inToken.
    uint256 public inTokenID;

    /// Token to be claimed.
    IGenericToken public outToken;

    /// NFT ID of outToken.
    uint256 public outTokenID;

    /// Contract where glory and infamy are tracked.
    GloryAndInfamy public gloryAndInfamy;

    ////
    //// STAKING
    ////

    /// Name of this staking farm.
    string public name;

    /// Points earned per second per staked inToken.
    uint256 public pointsYield;

    /// Points needed to mint 1 outToken.
    uint256 public outTokenPointsCost;

    /// Glory earned per second per staked inToken.
    uint256 public gloryYield;

    /// Infamy earned per second per staked inToken.
    uint256 public infamyYield;

    struct Balance {
        uint256 tokens;
        uint256 points;
        uint256 glory;
        uint256 infamy;
    }
    mapping(address => Balance) public balances;

    /// Timestamp at contract deploy.
    uint256 private _genesisTimestamp;

    /// Timestamp of account's last deposit/withdrawal/claim.
    /// @dev account => UNIX timestamp
    mapping(address => uint256) private _timestamps;

    event Stake(
        address indexed account,
        uint256 indexed amount
    );

    event Withdraw(
        address indexed account,
        uint256 indexed amount
    );

    event Claim(
        address indexed account,
        uint256 indexed amount
    );

    ////
    //// INIT
    ////

    /**
     * Deploy contract.
     * @param _name as string name of staking farm.
     * @param _inToken as address of staked token.
     * @param _inTokenID as uint256 ID of staked token if it's an NFT.
     * @param _outToken as address of yielded token.
     * @param _outTokenID as uint256 ID of yielded token if it's an NFT.
     * @param _gloryAndInfamy as address of GloryAndInfamy contract.
     * @param _pointsYield as uint256 rate per second at which points are earned.
     * @param _gloryYield as uint256 rate per second at which glory is earned.
     * @param _infamyYield as uint256 rate per second at which infamy is are earned.
     */
    constructor(
        string memory _name,
        address _inToken,
        uint256 _inTokenID,
        address _outToken,
        uint256 _outTokenID,
        address _gloryAndInfamy,
        uint256 _pointsYield,
        uint256 _gloryYield,
        uint256 _infamyYield
    ) {
        name = _name;

        inToken = IGenericToken(_inToken);
        inTokenID = _inTokenID;

        outToken = IGenericToken(_outToken);
        outTokenID = _outTokenID;

        gloryAndInfamy = GloryAndInfamy(_gloryAndInfamy);

        pointsYield = _pointsYield;
        gloryYield = _gloryYield;
        infamyYield = _infamyYield;
        outTokenPointsCost = 86400; // Number of seconds in a day.

        _genesisTimestamp = block.timestamp;
    }

    ////
    //// STAKING
    ////

    function getPointsCount(address account)
        private
        view
        returns(uint256)
    {
        uint256 duration = 0;
        if (_timestamps[account] > _genesisTimestamp)
            duration = block.timestamp - _timestamps[account];
        uint256 staked = balances[account].tokens;
        uint256 pointsAfterLastTimestamp = duration * pointsYield * staked;
        return balances[account].points + pointsAfterLastTimestamp;
    }

    function getGloryCount(address account)
        private
        view
        returns(uint256)
    {
        uint256 duration = 0;
        if (_timestamps[account] > _genesisTimestamp)
            duration = block.timestamp - _timestamps[account];
        uint256 staked = balances[account].tokens;
        uint256 gloryAfterLastTimestamp = duration * gloryYield * staked;
        return balances[account].glory + gloryAfterLastTimestamp;
    }

    function getInfamyCount(address account)
        private
        view
        returns(uint256)
    {
        uint256 duration = 0;
        if (_timestamps[account] > _genesisTimestamp)
            duration = block.timestamp - _timestamps[account];
        uint256 staked = balances[account].tokens;
        uint256 infamyAfterLastTimestamp = duration * infamyYield * staked;
        return balances[account].infamy + infamyAfterLastTimestamp;
    }

    function getClaimableOutTokenAmount(address account)
        public
        view
        returns(uint256)
    {
        return (getPointsCount(account) / outTokenPointsCost);
    }

    function updateYieldCounts(address account)
        private
    {
        balances[account].points = getPointsCount(account);
        balances[account].glory = getGloryCount(account);
        balances[account].infamy = getInfamyCount(account);
        _timestamps[account] = block.timestamp;
    }

    function stakeInToken(uint256 amount)
        external
        nonReentrant
    {
        address account = _msgSender();

        updateYieldCounts(account);
        inToken.safeTransferFrom(
            account,
            address(this),
            inTokenID,
            amount,
            ""
        );
        balances[account].tokens += amount;

        emit Stake(account, amount);
    }

    function withdrawInToken(uint256 amount)
        external
        nonReentrant
    {
        address account = _msgSender();
        require(balances[account].tokens >= amount, "Insufficient balance");

        updateYieldCounts(account);
        balances[account].tokens -= amount;
        inToken.safeTransferFrom(
            address(this),
            account,
            inTokenID,
            amount,
            ""
        );

        emit Withdraw(account, amount);
    }

    function claimAll()
        external
        nonReentrant
    {
        address account = _msgSender();

        uint256 amount =  getClaimableOutTokenAmount(account) * (10 ** outToken.decimals());
        updateYieldCounts(account);
        outToken.mint(
            account,
            outTokenID,
            amount
        );

        gloryAndInfamy.addGlory(account, getGloryCount(account));
        gloryAndInfamy.addInfamy(account, getInfamyCount(account));

        balances[account].points = 0;
        balances[account].glory = 0;
        balances[account].infamy = 0;

        emit Claim(account, amount);
    }
}


// File contracts/operations/rackets/Brothels.sol
/**
 * @title A staking contract for Yakuza 2033.
 *
 * @notice Yakuza 2033
 *             Telegram: t.me/yakuza2033
 *             Twitter:  yakuza2033
 *             App:      yakuza2033.com
 *
 * @author Shogun
 *             Telegram: zeroXshogun
 *             Web:      coinlord.finance
 *
 * @custom:security-contact Telegram: zeroXshogun
 */
contract Brothels is Staking {
    ////
    //// INIT
    ////

    /**
     * Deploy contract.
     *
     * @param operatives as address of staked token.
     * @param bugs as address of yielded token.
     * @param yakuza as address of Yakuza contract.
     */
    constructor(
        address operatives,
        address bugs,
        address yakuza
    ) Staking(
        "Brothels",
        operatives,
        1,
        bugs,
        0,
        yakuza,
        60,
        0,
        2
    ) {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"operatives","type":"address"},{"internalType":"address","name":"bugs","type":"address"},{"internalType":"address","name":"yakuza","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claim","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"appAddresses","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"tokens","type":"uint256"},{"internalType":"uint256","name":"points","type":"uint256"},{"internalType":"uint256","name":"glory","type":"uint256"},{"internalType":"uint256","name":"infamy","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getClaimableOutTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gloryAndInfamy","outputs":[{"internalType":"contract GloryAndInfamy","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gloryYield","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inToken","outputs":[{"internalType":"contract IGenericToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inTokenID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"infamyYield","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"outToken","outputs":[{"internalType":"contract IGenericToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"outTokenID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"outTokenPointsCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pointsYield","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"permitted","type":"bool"}],"name":"setPermission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stakeInToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawInToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50604051620015d7380380620015d7833981016040819052620000349162000156565b60408051808201909152600881526742726f7468656c7360c01b602082015283600184600085603c8260026200006a33620000e9565b600160025560086200007d8a8262000245565b50600380546001600160a01b03199081166001600160a01b039a8b161790915560049790975560058054881696891696909617909555600693909355600780549095169190951617909255600992909255600b55600c55505062015180600a55505042600e5562000311565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200015157600080fd5b919050565b6000806000606084860312156200016c57600080fd5b620001778462000139565b9250620001876020850162000139565b9150620001976040850162000139565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001cb57607f821691505b602082108103620001ec57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200024057600081815260208120601f850160051c810160208610156200021b5750805b601f850160051c820191505b818110156200023c5782815560010162000227565b5050505b505050565b81516001600160401b03811115620002615762000261620001a0565b6200027981620002728454620001b6565b84620001f2565b602080601f831160018114620002b15760008415620002985750858301515b600019600386901b1c1916600185901b1785556200023c565b600085815260208120601f198616915b82811015620002e257888601518255948401946001909101908401620002c1565b5085821015620003015787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6112b680620003216000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806378176c5a116100c3578063e377d37f1161007c578063e377d37f14610301578063ec3f608e14610314578063ec6263c014610327578063f23a6e611461033a578063f2fde38b14610359578063f7be19861461036c57600080fd5b806378176c5a1461027b5780638da5cb5b1461028457806390de2104146102955780639829ad8f146102b8578063bc197c81146102c1578063d1058e59146102f957600080fd5b806325a8955b1161011557806325a8955b146101c457806327e235e3146101cd57806333db82fd146102225780635f2225c21461024d5780636c82532714610260578063715018a61461027357600080fd5b806301ffc9a71461015257806306fdde031461017a57806309803feb1461018f5780630bc4f821146101a45780631e206285146101bb575b600080fd5b610165610160366004610d32565b610375565b60405190151581526020015b60405180910390f35b6101826103ac565b6040516101719190610d63565b6101a261019d366004610db1565b61043a565b005b6101ad600a5481565b604051908152602001610171565b6101ad60095481565b6101ad60065481565b6102026101db366004610de6565b600d6020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610171565b600554610235906001600160a01b031681565b6040516001600160a01b039091168152602001610171565b6101a261025b366004610db1565b610525565b600354610235906001600160a01b031681565b6101a2610667565b6101ad600b5481565b6000546001600160a01b0316610235565b6101656102a3366004610de6565b60016020526000908152604090205460ff1681565b6101ad60045481565b6102e06102cf366004610f38565b63bc197c8160e01b95945050505050565b6040516001600160e01b03199091168152602001610171565b6101a261067b565b6101ad61030f366004610de6565b6108e6565b600754610235906001600160a01b031681565b6101a2610335366004610fe2565b6108fe565b6102e061034836600461101e565b63f23a6e6160e01b95945050505050565b6101a2610367366004610de6565b610931565b6101ad600c5481565b60006001600160e01b03198216630271189760e51b14806103a657506301ffc9a760e01b6001600160e01b03198316145b92915050565b600880546103b990611083565b80601f01602080910402602001604051908101604052809291908181526020018280546103e590611083565b80156104325780601f1061040757610100808354040283529160200191610432565b820191906000526020600020905b81548152906001019060200180831161041557829003601f168201915b505050505081565b6104426109a7565b3361044c816109fe565b60035460048054604051637921219560e11b81526001600160a01b039093169263f242432a9261048292869230928991016110bd565b600060405180830381600087803b15801561049c57600080fd5b505af11580156104b0573d6000803e3d6000fd5b505050506001600160a01b0381166000908152600d6020526040812080548492906104dc90849061110b565b909155505060405182906001600160a01b038316907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a90600090a3506105226001600255565b50565b61052d6109a7565b336000818152600d60205260409020548211156105885760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064015b60405180910390fd5b610591816109fe565b6001600160a01b0381166000908152600d6020526040812080548492906105b990849061111e565b909155505060035460048054604051637921219560e11b81526001600160a01b039093169263f242432a926105f492309287928991016110bd565b600060405180830381600087803b15801561060e57600080fd5b505af1158015610622573d6000803e3d6000fd5b50506040518492506001600160a01b03841691507f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436490600090a3506105226001600255565b61066f610a7e565b6106796000610ad8565b565b6106836109a7565b6005546040805163313ce56760e01b8152905133926000926001600160a01b039091169163313ce56791600480820192602092909190829003018187875af11580156106d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f79190611131565b61070290600a611238565b61070b836108e6565b6107159190611247565b9050610720826109fe565b600554600654604051630ab714fb60e11b81526001600160a01b03858116600483015260248201929092526044810184905291169063156e29f690606401600060405180830381600087803b15801561077857600080fd5b505af115801561078c573d6000803e3d6000fd5b50506007546001600160a01b0316915063038641b59050836107ad81610b28565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156107f357600080fd5b505af1158015610807573d6000803e3d6000fd5b50506007546001600160a01b0316915063a4ff5e5390508361082881610bdc565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561086e57600080fd5b505af1158015610882573d6000803e3d6000fd5b5050506001600160a01b0383166000818152600d60205260408082206001810183905560028101839055600301829055518493507f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d49190a350506106796001600255565b6000600a546108f483610c87565b6103a6919061125e565b610906610a7e565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b610939610a7e565b6001600160a01b03811661099e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161057f565b61052281610ad8565b60028054036109f85760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161057f565b60028055565b610a0781610c87565b6001600160a01b0382166000908152600d6020526040902060010155610a2c81610b28565b6001600160a01b0382166000908152600d6020526040902060020155610a5181610bdc565b6001600160a01b039091166000908152600d6020908152604080832060030193909355600f905220429055565b6000546001600160a01b031633146106795760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600e546001600160a01b0382166000908152600f6020526040812054909182911115610b74576001600160a01b0383166000908152600f6020526040902054610b71904261111e565b90505b6001600160a01b0383166000908152600d6020526040812054600b549091908290610b9f9085611247565b610ba99190611247565b6001600160a01b0386166000908152600d6020526040902060020154909150610bd390829061110b565b95945050505050565b600e546001600160a01b0382166000908152600f6020526040812054909182911115610c28576001600160a01b0383166000908152600f6020526040902054610c25904261111e565b90505b6001600160a01b0383166000908152600d6020526040812054600c549091908290610c539085611247565b610c5d9190611247565b6001600160a01b0386166000908152600d6020526040902060030154909150610bd390829061110b565b600e546001600160a01b0382166000908152600f6020526040812054909182911115610cd3576001600160a01b0383166000908152600f6020526040902054610cd0904261111e565b90505b6001600160a01b0383166000908152600d60205260408120546009549091908290610cfe9085611247565b610d089190611247565b6001600160a01b0386166000908152600d6020526040902060010154909150610bd390829061110b565b600060208284031215610d4457600080fd5b81356001600160e01b031981168114610d5c57600080fd5b9392505050565b600060208083528351808285015260005b81811015610d9057858101830151858201604001528201610d74565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215610dc357600080fd5b5035919050565b80356001600160a01b0381168114610de157600080fd5b919050565b600060208284031215610df857600080fd5b610d5c82610dca565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610e4057610e40610e01565b604052919050565b600082601f830112610e5957600080fd5b8135602067ffffffffffffffff821115610e7557610e75610e01565b8160051b610e84828201610e17565b9283528481018201928281019087851115610e9e57600080fd5b83870192505b84831015610ebd57823582529183019190830190610ea4565b979650505050505050565b600082601f830112610ed957600080fd5b813567ffffffffffffffff811115610ef357610ef3610e01565b610f06601f8201601f1916602001610e17565b818152846020838601011115610f1b57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215610f5057600080fd5b610f5986610dca565b9450610f6760208701610dca565b9350604086013567ffffffffffffffff80821115610f8457600080fd5b610f9089838a01610e48565b94506060880135915080821115610fa657600080fd5b610fb289838a01610e48565b93506080880135915080821115610fc857600080fd5b50610fd588828901610ec8565b9150509295509295909350565b60008060408385031215610ff557600080fd5b610ffe83610dca565b91506020830135801515811461101357600080fd5b809150509250929050565b600080600080600060a0868803121561103657600080fd5b61103f86610dca565b945061104d60208701610dca565b93506040860135925060608601359150608086013567ffffffffffffffff81111561107757600080fd5b610fd588828901610ec8565b600181811c9082168061109757607f821691505b6020821081036110b757634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0394851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b634e487b7160e01b600052601160045260246000fd5b808201808211156103a6576103a66110f5565b818103818111156103a6576103a66110f5565b60006020828403121561114357600080fd5b815160ff81168114610d5c57600080fd5b600181815b8085111561118f578160001904821115611175576111756110f5565b8085161561118257918102915b93841c9390800290611159565b509250929050565b6000826111a6575060016103a6565b816111b3575060006103a6565b81600181146111c957600281146111d3576111ef565b60019150506103a6565b60ff8411156111e4576111e46110f5565b50506001821b6103a6565b5060208310610133831016604e8410600b8410161715611212575081810a6103a6565b61121c8383611154565b8060001904821115611230576112306110f5565b029392505050565b6000610d5c60ff841683611197565b80820281158282048414176103a6576103a66110f5565b60008261127b57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220d586956d2eb97a4b3b667bc06ca904ce97ab7dbe1f5621b37d240d6b0903d53964736f6c63430008110033000000000000000000000000a23a82373749b84390def88963634d13e643b1dd0000000000000000000000003350748459411d148e9c9e2cb3dcb3b4bdc509cb0000000000000000000000003a12fa7e06a492f0f977b46f4d75b4c434276c38

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806378176c5a116100c3578063e377d37f1161007c578063e377d37f14610301578063ec3f608e14610314578063ec6263c014610327578063f23a6e611461033a578063f2fde38b14610359578063f7be19861461036c57600080fd5b806378176c5a1461027b5780638da5cb5b1461028457806390de2104146102955780639829ad8f146102b8578063bc197c81146102c1578063d1058e59146102f957600080fd5b806325a8955b1161011557806325a8955b146101c457806327e235e3146101cd57806333db82fd146102225780635f2225c21461024d5780636c82532714610260578063715018a61461027357600080fd5b806301ffc9a71461015257806306fdde031461017a57806309803feb1461018f5780630bc4f821146101a45780631e206285146101bb575b600080fd5b610165610160366004610d32565b610375565b60405190151581526020015b60405180910390f35b6101826103ac565b6040516101719190610d63565b6101a261019d366004610db1565b61043a565b005b6101ad600a5481565b604051908152602001610171565b6101ad60095481565b6101ad60065481565b6102026101db366004610de6565b600d6020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610171565b600554610235906001600160a01b031681565b6040516001600160a01b039091168152602001610171565b6101a261025b366004610db1565b610525565b600354610235906001600160a01b031681565b6101a2610667565b6101ad600b5481565b6000546001600160a01b0316610235565b6101656102a3366004610de6565b60016020526000908152604090205460ff1681565b6101ad60045481565b6102e06102cf366004610f38565b63bc197c8160e01b95945050505050565b6040516001600160e01b03199091168152602001610171565b6101a261067b565b6101ad61030f366004610de6565b6108e6565b600754610235906001600160a01b031681565b6101a2610335366004610fe2565b6108fe565b6102e061034836600461101e565b63f23a6e6160e01b95945050505050565b6101a2610367366004610de6565b610931565b6101ad600c5481565b60006001600160e01b03198216630271189760e51b14806103a657506301ffc9a760e01b6001600160e01b03198316145b92915050565b600880546103b990611083565b80601f01602080910402602001604051908101604052809291908181526020018280546103e590611083565b80156104325780601f1061040757610100808354040283529160200191610432565b820191906000526020600020905b81548152906001019060200180831161041557829003601f168201915b505050505081565b6104426109a7565b3361044c816109fe565b60035460048054604051637921219560e11b81526001600160a01b039093169263f242432a9261048292869230928991016110bd565b600060405180830381600087803b15801561049c57600080fd5b505af11580156104b0573d6000803e3d6000fd5b505050506001600160a01b0381166000908152600d6020526040812080548492906104dc90849061110b565b909155505060405182906001600160a01b038316907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a90600090a3506105226001600255565b50565b61052d6109a7565b336000818152600d60205260409020548211156105885760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064015b60405180910390fd5b610591816109fe565b6001600160a01b0381166000908152600d6020526040812080548492906105b990849061111e565b909155505060035460048054604051637921219560e11b81526001600160a01b039093169263f242432a926105f492309287928991016110bd565b600060405180830381600087803b15801561060e57600080fd5b505af1158015610622573d6000803e3d6000fd5b50506040518492506001600160a01b03841691507f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436490600090a3506105226001600255565b61066f610a7e565b6106796000610ad8565b565b6106836109a7565b6005546040805163313ce56760e01b8152905133926000926001600160a01b039091169163313ce56791600480820192602092909190829003018187875af11580156106d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f79190611131565b61070290600a611238565b61070b836108e6565b6107159190611247565b9050610720826109fe565b600554600654604051630ab714fb60e11b81526001600160a01b03858116600483015260248201929092526044810184905291169063156e29f690606401600060405180830381600087803b15801561077857600080fd5b505af115801561078c573d6000803e3d6000fd5b50506007546001600160a01b0316915063038641b59050836107ad81610b28565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156107f357600080fd5b505af1158015610807573d6000803e3d6000fd5b50506007546001600160a01b0316915063a4ff5e5390508361082881610bdc565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561086e57600080fd5b505af1158015610882573d6000803e3d6000fd5b5050506001600160a01b0383166000818152600d60205260408082206001810183905560028101839055600301829055518493507f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d49190a350506106796001600255565b6000600a546108f483610c87565b6103a6919061125e565b610906610a7e565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b610939610a7e565b6001600160a01b03811661099e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161057f565b61052281610ad8565b60028054036109f85760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161057f565b60028055565b610a0781610c87565b6001600160a01b0382166000908152600d6020526040902060010155610a2c81610b28565b6001600160a01b0382166000908152600d6020526040902060020155610a5181610bdc565b6001600160a01b039091166000908152600d6020908152604080832060030193909355600f905220429055565b6000546001600160a01b031633146106795760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600e546001600160a01b0382166000908152600f6020526040812054909182911115610b74576001600160a01b0383166000908152600f6020526040902054610b71904261111e565b90505b6001600160a01b0383166000908152600d6020526040812054600b549091908290610b9f9085611247565b610ba99190611247565b6001600160a01b0386166000908152600d6020526040902060020154909150610bd390829061110b565b95945050505050565b600e546001600160a01b0382166000908152600f6020526040812054909182911115610c28576001600160a01b0383166000908152600f6020526040902054610c25904261111e565b90505b6001600160a01b0383166000908152600d6020526040812054600c549091908290610c539085611247565b610c5d9190611247565b6001600160a01b0386166000908152600d6020526040902060030154909150610bd390829061110b565b600e546001600160a01b0382166000908152600f6020526040812054909182911115610cd3576001600160a01b0383166000908152600f6020526040902054610cd0904261111e565b90505b6001600160a01b0383166000908152600d60205260408120546009549091908290610cfe9085611247565b610d089190611247565b6001600160a01b0386166000908152600d6020526040902060010154909150610bd390829061110b565b600060208284031215610d4457600080fd5b81356001600160e01b031981168114610d5c57600080fd5b9392505050565b600060208083528351808285015260005b81811015610d9057858101830151858201604001528201610d74565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215610dc357600080fd5b5035919050565b80356001600160a01b0381168114610de157600080fd5b919050565b600060208284031215610df857600080fd5b610d5c82610dca565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610e4057610e40610e01565b604052919050565b600082601f830112610e5957600080fd5b8135602067ffffffffffffffff821115610e7557610e75610e01565b8160051b610e84828201610e17565b9283528481018201928281019087851115610e9e57600080fd5b83870192505b84831015610ebd57823582529183019190830190610ea4565b979650505050505050565b600082601f830112610ed957600080fd5b813567ffffffffffffffff811115610ef357610ef3610e01565b610f06601f8201601f1916602001610e17565b818152846020838601011115610f1b57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215610f5057600080fd5b610f5986610dca565b9450610f6760208701610dca565b9350604086013567ffffffffffffffff80821115610f8457600080fd5b610f9089838a01610e48565b94506060880135915080821115610fa657600080fd5b610fb289838a01610e48565b93506080880135915080821115610fc857600080fd5b50610fd588828901610ec8565b9150509295509295909350565b60008060408385031215610ff557600080fd5b610ffe83610dca565b91506020830135801515811461101357600080fd5b809150509250929050565b600080600080600060a0868803121561103657600080fd5b61103f86610dca565b945061104d60208701610dca565b93506040860135925060608601359150608086013567ffffffffffffffff81111561107757600080fd5b610fd588828901610ec8565b600181811c9082168061109757607f821691505b6020821081036110b757634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0394851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b634e487b7160e01b600052601160045260246000fd5b808201808211156103a6576103a66110f5565b818103818111156103a6576103a66110f5565b60006020828403121561114357600080fd5b815160ff81168114610d5c57600080fd5b600181815b8085111561118f578160001904821115611175576111756110f5565b8085161561118257918102915b93841c9390800290611159565b509250929050565b6000826111a6575060016103a6565b816111b3575060006103a6565b81600181146111c957600281146111d3576111ef565b60019150506103a6565b60ff8411156111e4576111e46110f5565b50506001821b6103a6565b5060208310610133831016604e8410600b8410161715611212575081810a6103a6565b61121c8383611154565b8060001904821115611230576112306110f5565b029392505050565b6000610d5c60ff841683611197565b80820281158282048414176103a6576103a66110f5565b60008261127b57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220d586956d2eb97a4b3b667bc06ca904ce97ab7dbe1f5621b37d240d6b0903d53964736f6c63430008110033

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

000000000000000000000000a23a82373749b84390def88963634d13e643b1dd0000000000000000000000003350748459411d148e9c9e2cb3dcb3b4bdc509cb0000000000000000000000003a12fa7e06a492f0f977b46f4d75b4c434276c38

-----Decoded View---------------
Arg [0] : operatives (address): 0xa23a82373749B84390dEf88963634d13e643B1dd
Arg [1] : bugs (address): 0x3350748459411D148e9C9e2Cb3Dcb3B4BDC509cB
Arg [2] : yakuza (address): 0x3A12FA7E06A492f0F977B46f4D75B4c434276c38

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000a23a82373749b84390def88963634d13e643b1dd
Arg [1] : 0000000000000000000000003350748459411d148e9c9e2cb3dcb3b4bdc509cb
Arg [2] : 0000000000000000000000003a12fa7e06a492f0f977b46f4d75b4c434276c38


Deployed Bytecode Sourcemap

22757:531:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8839:223;;;;;;:::i;:::-;;:::i;:::-;;;470:14:1;;463:22;445:41;;433:2;418:18;8839:223:0;;;;;;;;16253:18;;;:::i;:::-;;;;;;;:::i;20759:414::-;;;;;;:::i;:::-;;:::i;:::-;;16412:33;;;;;;;;;1381:25:1;;;1369:2;1354:18;16412:33:0;1235:177:1;16334:26:0;;;;;;16044:25;;;;;;16758:43;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2017:25:1;;;2073:2;2058:18;;2051:34;;;;2101:18;;;2094:34;2159:2;2144:18;;2137:34;2004:3;1989:19;16758:43:0;1786:391:1;15977:29:0;;;;;-1:-1:-1;;;;;15977:29:0;;;;;;-1:-1:-1;;;;;2367:32:1;;;2349:51;;2337:2;2322:18;15977:29:0;2182:224:1;21181:498:0;;;;;;:::i;:::-;;:::i;15849:28::-;;;;;-1:-1:-1;;;;;15849:28:0;;;3268:103;;;:::i;16507:25::-;;;;;;2620:87;2666:7;2693:6;-1:-1:-1;;;;;2693:6:0;2620:87;;13510:44;;;;;;:::i;:::-;;;;;;;;;;;;;;;;15914:24;;;;;;9802:255;;;;;;:::i;:::-;-1:-1:-1;;;9802:255:0;;;;;;;;;;;-1:-1:-1;;;;;;5393:33:1;;;5375:52;;5363:2;5348:18;9802:255:0;5231:202:1;21687:646:0;;;:::i;20253:186::-;;;;;;:::i;:::-;;:::i;16132:36::-;;;;;-1:-1:-1;;;;;16132:36:0;;;13711:150;;;;;;:::i;:::-;;:::i;9567:227::-;;;;;;:::i;:::-;-1:-1:-1;;;9567:227:0;;;;;;;;3526:201;;;;;;:::i;:::-;;:::i;16595:26::-;;;;;;8839:223;8941:4;-1:-1:-1;;;;;;8965:49:0;;-1:-1:-1;;;8965:49:0;;:89;;-1:-1:-1;;;;;;;;;;8450:40:0;;;9018:36;8958:96;8839:223;-1:-1:-1;;8839:223:0:o;16253:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20759:414::-;12384:21;:19;:21::i;:::-;1278:10;20896:26:::1;1278:10:::0;20896:17:::1;:26::i;:::-;20933:7;::::0;21022:9:::1;::::0;;20933:147:::1;::::0;-1:-1:-1;;;20933:147:0;;-1:-1:-1;;;;;20933:7:0;;::::1;::::0;:24:::1;::::0;:147:::1;::::0;20972:7;;21002:4:::1;::::0;21046:6;;20933:147:::1;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;;21091:17:0;::::1;;::::0;;;:8:::1;:17;::::0;;;;:34;;21119:6;;21091:17;:34:::1;::::0;21119:6;;21091:34:::1;:::i;:::-;::::0;;;-1:-1:-1;;21143:22:0::1;::::0;21158:6;;-1:-1:-1;;;;;21143:22:0;::::1;::::0;::::1;::::0;;;::::1;20842:331;12428:20:::0;11822:1;12948:7;:22;12765:213;12428:20;20759:414;:::o;21181:498::-;12384:21;:19;:21::i;:::-;1278:10;21278:15:::1;21327:17:::0;;;:8:::1;:17;::::0;;;;:24;-1:-1:-1;;21327:34:0::1;21319:67;;;::::0;-1:-1:-1;;;21319:67:0;;8112:2:1;21319:67:0::1;::::0;::::1;8094:21:1::0;8151:2;8131:18;;;8124:30;-1:-1:-1;;;8170:18:1;;;8163:50;8230:18;;21319:67:0::1;;;;;;;;;21399:26;21417:7;21399:17;:26::i;:::-;-1:-1:-1::0;;;;;21436:17:0;::::1;;::::0;;;:8:::1;:17;::::0;;;;:34;;21464:6;;21436:17;:34:::1;::::0;21464:6;;21436:34:::1;:::i;:::-;::::0;;;-1:-1:-1;;21481:7:0::1;::::0;21570:9:::1;::::0;;21481:147:::1;::::0;-1:-1:-1;;;21481:147:0;;-1:-1:-1;;;;;21481:7:0;;::::1;::::0;:24:::1;::::0;:147:::1;::::0;21528:4:::1;::::0;21548:7;;21594:6;;21481:147:::1;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;21646:25:0::1;::::0;21664:6;;-1:-1:-1;;;;;;21646:25:0;::::1;::::0;-1:-1:-1;21646:25:0::1;::::0;;;::::1;21267:412;12428:20:::0;11822:1;12948:7;:22;12765:213;3268:103;2506:13;:11;:13::i;:::-;3333:30:::1;3360:1;3333:18;:30::i;:::-;3268:103::o:0;21687:646::-;12384:21;:19;:21::i;:::-;21869:8:::1;::::0;:19:::1;::::0;;-1:-1:-1;;;21869:19:0;;;;1278:10;;21763:15:::1;::::0;-1:-1:-1;;;;;21869:8:0;;::::1;::::0;:17:::1;::::0;:19:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;21763:15;21869:8;:19:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21863:25;::::0;:2:::1;:25;:::i;:::-;21824:35;21851:7;21824:26;:35::i;:::-;:65;;;;:::i;:::-;21806:83;;21900:26;21918:7;21900:17;:26::i;:::-;21937:8;::::0;21987:10:::1;::::0;21937:92:::1;::::0;-1:-1:-1;;;21937:92:0;;-1:-1:-1;;;;;10446:32:1;;;21937:92:0::1;::::0;::::1;10428:51:1::0;10495:18;;;10488:34;;;;10538:18;;;10531:34;;;21937:8:0;::::1;::::0;:13:::1;::::0;10401:18:1;;21937:92:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;22042:14:0::1;::::0;-1:-1:-1;;;;;22042:14:0::1;::::0;-1:-1:-1;22042:23:0::1;::::0;-1:-1:-1;22066:7:0;22075:22:::1;22066:7:::0;22075:13:::1;:22::i;:::-;22042:56;::::0;-1:-1:-1;;;;;;22042:56:0::1;::::0;;;;;;-1:-1:-1;;;;;10768:32:1;;;22042:56:0::1;::::0;::::1;10750:51:1::0;10817:18;;;10810:34;10723:18;;22042:56:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;22109:14:0::1;::::0;-1:-1:-1;;;;;22109:14:0::1;::::0;-1:-1:-1;22109:24:0::1;::::0;-1:-1:-1;22134:7:0;22143:23:::1;22134:7:::0;22143:14:::1;:23::i;:::-;22109:58;::::0;-1:-1:-1;;;;;;22109:58:0::1;::::0;;;;;;-1:-1:-1;;;;;10768:32:1;;;22109:58:0::1;::::0;::::1;10750:51:1::0;10817:18;;;10810:34;10723:18;;22109:58:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;22180:17:0;::::1;22207:1;22180:17:::0;;;:8:::1;:17;::::0;;;;;:24:::1;::::0;::::1;:28:::0;;;22219:23:::1;::::0;::::1;:27:::0;;;22257:24:::1;;:28:::0;;;22303:22;22318:6;;-1:-1:-1;22303:22:0::1;::::0;22207:1;22303:22:::1;21752:581;;12428:20:::0;11822:1;12948:7;:22;12765:213;20253:186;20353:7;20412:18;;20386:23;20401:7;20386:14;:23::i;:::-;:44;;;;:::i;13711:150::-;2506:13;:11;:13::i;:::-;-1:-1:-1;;;;;13820:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:33;;-1:-1:-1;;13820:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13711:150::o;3526:201::-;2506:13;:11;:13::i;:::-;-1:-1:-1;;;;;3615:22:0;::::1;3607:73;;;::::0;-1:-1:-1;;;3607:73:0;;11279:2:1;3607:73:0::1;::::0;::::1;11261:21:1::0;11318:2;11298:18;;;11291:30;11357:34;11337:18;;;11330:62;-1:-1:-1;;;11408:18:1;;;11401:36;11454:19;;3607:73:0::1;11077:402:1::0;3607:73:0::1;3691:28;3710:8;3691:18;:28::i;12464:293::-:0;11866:1;12598:7;;:19;12590:63;;;;-1:-1:-1;;;12590:63:0;;11686:2:1;12590:63:0;;;11668:21:1;11725:2;11705:18;;;11698:30;11764:33;11744:18;;;11737:61;11815:18;;12590:63:0;11484:355:1;12590:63:0;11866:1;12731:18;;12464:293::o;20447:304::-;20551:23;20566:7;20551:14;:23::i;:::-;-1:-1:-1;;;;;20524:17:0;;;;;;:8;:17;;;;;:24;;:50;20611:22;20533:7;20611:13;:22::i;:::-;-1:-1:-1;;;;;20585:17:0;;;;;;:8;:17;;;;;:23;;:48;20671:23;20594:7;20671:14;:23::i;:::-;-1:-1:-1;;;;;20644:17:0;;;;;;;:8;:17;;;;;;;;:24;;:50;;;;20705:11;:20;;;20728:15;20705:38;;20447:304::o;2785:132::-;2666:7;2693:6;-1:-1:-1;;;;;2693:6:0;1278:10;2849:23;2841:68;;;;-1:-1:-1;;;2841:68:0;;12046:2:1;2841:68:0;;;12028:21:1;;;12065:18;;;12058:30;12124:34;12104:18;;;12097:62;12176:18;;2841:68:0;11844:356:1;3887:191:0;3961:16;3980:6;;-1:-1:-1;;;;;3997:17:0;;;-1:-1:-1;;;;;;3997:17:0;;;;;;4030:40;;3980:6;;;;;;;4030:40;;3961:16;4030:40;3950:128;3887:191;:::o;19324:454::-;19495:17;;-1:-1:-1;;;;;19472:20:0;;19412:7;19472:20;;;:11;:20;;;;;;19412:7;;;;19472:40;19468:108;;;-1:-1:-1;;;;;19556:20:0;;;;;;:11;:20;;;;;;19538:38;;:15;:38;:::i;:::-;19527:49;;19468:108;-1:-1:-1;;;;;19604:17:0;;19587:14;19604:17;;;:8;:17;;;;;:24;19684:10;;19604:24;;19587:14;19604:24;;19673:21;;:8;:21;:::i;:::-;:30;;;;:::i;:::-;-1:-1:-1;;;;;19721:17:0;;;;;;:8;:17;;;;;:23;;;19639:64;;-1:-1:-1;19721:49:0;;19639:64;;19721:49;:::i;:::-;19714:56;19324:454;-1:-1:-1;;;;;19324:454:0:o;19786:459::-;19958:17;;-1:-1:-1;;;;;19935:20:0;;19875:7;19935:20;;;:11;:20;;;;;;19875:7;;;;19935:40;19931:108;;;-1:-1:-1;;;;;20019:20:0;;;;;;:11;:20;;;;;;20001:38;;:15;:38;:::i;:::-;19990:49;;19931:108;-1:-1:-1;;;;;20067:17:0;;20050:14;20067:17;;;:8;:17;;;;;:24;20148:11;;20067:24;;20050:14;20067:24;;20137:22;;:8;:22;:::i;:::-;:31;;;;:::i;:::-;-1:-1:-1;;;;;20186:17:0;;;;;;:8;:17;;;;;:24;;;20102:66;;-1:-1:-1;20186:51:0;;20102:66;;20186:51;:::i;18857:459::-;19029:17;;-1:-1:-1;;;;;19006:20:0;;18946:7;19006:20;;;:11;:20;;;;;;18946:7;;;;19006:40;19002:108;;;-1:-1:-1;;;;;19090:20:0;;;;;;:11;:20;;;;;;19072:38;;:15;:38;:::i;:::-;19061:49;;19002:108;-1:-1:-1;;;;;19138:17:0;;19121:14;19138:17;;;:8;:17;;;;;:24;19219:11;;19138:24;;19121:14;19138:24;;19208:22;;:8;:22;:::i;:::-;:31;;;;:::i;:::-;-1:-1:-1;;;;;19257:17:0;;;;;;:8;:17;;;;;:24;;;19173:66;;-1:-1:-1;19257:51:0;;19173:66;;19257:51;:::i;14:286:1:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:1;;209:43;;199:71;;266:1;263;256:12;199:71;289:5;14:286;-1:-1:-1;;;14:286:1:o;497:548::-;609:4;638:2;667;656:9;649:21;699:6;693:13;742:6;737:2;726:9;722:18;715:34;767:1;777:140;791:6;788:1;785:13;777:140;;;886:14;;;882:23;;876:30;852:17;;;871:2;848:26;841:66;806:10;;777:140;;;781:3;966:1;961:2;952:6;941:9;937:22;933:31;926:42;1036:2;1029;1025:7;1020:2;1012:6;1008:15;1004:29;993:9;989:45;985:54;977:62;;;;497:548;;;;:::o;1050:180::-;1109:6;1162:2;1150:9;1141:7;1137:23;1133:32;1130:52;;;1178:1;1175;1168:12;1130:52;-1:-1:-1;1201:23:1;;1050:180;-1:-1:-1;1050:180:1:o;1417:173::-;1485:20;;-1:-1:-1;;;;;1534:31:1;;1524:42;;1514:70;;1580:1;1577;1570:12;1514:70;1417:173;;;:::o;1595:186::-;1654:6;1707:2;1695:9;1686:7;1682:23;1678:32;1675:52;;;1723:1;1720;1713:12;1675:52;1746:29;1765:9;1746:29;:::i;2619:127::-;2680:10;2675:3;2671:20;2668:1;2661:31;2711:4;2708:1;2701:15;2735:4;2732:1;2725:15;2751:275;2822:2;2816:9;2887:2;2868:13;;-1:-1:-1;;2864:27:1;2852:40;;2922:18;2907:34;;2943:22;;;2904:62;2901:88;;;2969:18;;:::i;:::-;3005:2;2998:22;2751:275;;-1:-1:-1;2751:275:1:o;3031:712::-;3085:5;3138:3;3131:4;3123:6;3119:17;3115:27;3105:55;;3156:1;3153;3146:12;3105:55;3192:6;3179:20;3218:4;3241:18;3237:2;3234:26;3231:52;;;3263:18;;:::i;:::-;3309:2;3306:1;3302:10;3332:28;3356:2;3352;3348:11;3332:28;:::i;:::-;3394:15;;;3464;;;3460:24;;;3425:12;;;;3496:15;;;3493:35;;;3524:1;3521;3514:12;3493:35;3560:2;3552:6;3548:15;3537:26;;3572:142;3588:6;3583:3;3580:15;3572:142;;;3654:17;;3642:30;;3605:12;;;;3692;;;;3572:142;;;3732:5;3031:712;-1:-1:-1;;;;;;;3031:712:1:o;3748:530::-;3790:5;3843:3;3836:4;3828:6;3824:17;3820:27;3810:55;;3861:1;3858;3851:12;3810:55;3897:6;3884:20;3923:18;3919:2;3916:26;3913:52;;;3945:18;;:::i;:::-;3989:55;4032:2;4013:13;;-1:-1:-1;;4009:27:1;4038:4;4005:38;3989:55;:::i;:::-;4069:2;4060:7;4053:19;4115:3;4108:4;4103:2;4095:6;4091:15;4087:26;4084:35;4081:55;;;4132:1;4129;4122:12;4081:55;4197:2;4190:4;4182:6;4178:17;4171:4;4162:7;4158:18;4145:55;4245:1;4220:16;;;4238:4;4216:27;4209:38;;;;4224:7;3748:530;-1:-1:-1;;;3748:530:1:o;4283:943::-;4437:6;4445;4453;4461;4469;4522:3;4510:9;4501:7;4497:23;4493:33;4490:53;;;4539:1;4536;4529:12;4490:53;4562:29;4581:9;4562:29;:::i;:::-;4552:39;;4610:38;4644:2;4633:9;4629:18;4610:38;:::i;:::-;4600:48;;4699:2;4688:9;4684:18;4671:32;4722:18;4763:2;4755:6;4752:14;4749:34;;;4779:1;4776;4769:12;4749:34;4802:61;4855:7;4846:6;4835:9;4831:22;4802:61;:::i;:::-;4792:71;;4916:2;4905:9;4901:18;4888:32;4872:48;;4945:2;4935:8;4932:16;4929:36;;;4961:1;4958;4951:12;4929:36;4984:63;5039:7;5028:8;5017:9;5013:24;4984:63;:::i;:::-;4974:73;;5100:3;5089:9;5085:19;5072:33;5056:49;;5130:2;5120:8;5117:16;5114:36;;;5146:1;5143;5136:12;5114:36;;5169:51;5212:7;5201:8;5190:9;5186:24;5169:51;:::i;:::-;5159:61;;;4283:943;;;;;;;;:::o;5668:347::-;5733:6;5741;5794:2;5782:9;5773:7;5769:23;5765:32;5762:52;;;5810:1;5807;5800:12;5762:52;5833:29;5852:9;5833:29;:::i;:::-;5823:39;;5912:2;5901:9;5897:18;5884:32;5959:5;5952:13;5945:21;5938:5;5935:32;5925:60;;5981:1;5978;5971:12;5925:60;6004:5;5994:15;;;5668:347;;;;;:::o;6020:606::-;6124:6;6132;6140;6148;6156;6209:3;6197:9;6188:7;6184:23;6180:33;6177:53;;;6226:1;6223;6216:12;6177:53;6249:29;6268:9;6249:29;:::i;:::-;6239:39;;6297:38;6331:2;6320:9;6316:18;6297:38;:::i;:::-;6287:48;;6382:2;6371:9;6367:18;6354:32;6344:42;;6433:2;6422:9;6418:18;6405:32;6395:42;;6488:3;6477:9;6473:19;6460:33;6516:18;6508:6;6505:30;6502:50;;;6548:1;6545;6538:12;6502:50;6571:49;6612:7;6603:6;6592:9;6588:22;6571:49;:::i;6631:380::-;6710:1;6706:12;;;;6753;;;6774:61;;6828:4;6820:6;6816:17;6806:27;;6774:61;6881:2;6873:6;6870:14;6850:18;6847:38;6844:161;;6927:10;6922:3;6918:20;6915:1;6908:31;6962:4;6959:1;6952:15;6990:4;6987:1;6980:15;6844:161;;6631:380;;;:::o;7016:627::-;-1:-1:-1;;;;;7367:15:1;;;7349:34;;7419:15;;;;7414:2;7399:18;;7392:43;7466:2;7451:18;;7444:34;7509:2;7494:18;;7487:34;;;;7329:3;7552;7537:19;;7530:32;;;7292:4;7578:19;;;7571:30;7633:3;7618:19;;7016:627::o;7648:127::-;7709:10;7704:3;7700:20;7697:1;7690:31;7740:4;7737:1;7730:15;7764:4;7761:1;7754:15;7780:125;7845:9;;;7866:10;;;7863:36;;;7879:18;;:::i;8259:128::-;8326:9;;;8347:11;;;8344:37;;;8361:18;;:::i;8392:273::-;8460:6;8513:2;8501:9;8492:7;8488:23;8484:32;8481:52;;;8529:1;8526;8519:12;8481:52;8561:9;8555:16;8611:4;8604:5;8600:16;8593:5;8590:27;8580:55;;8631:1;8628;8621:12;8670:422;8759:1;8802:5;8759:1;8816:270;8837:7;8827:8;8824:21;8816:270;;;8896:4;8892:1;8888:6;8884:17;8878:4;8875:27;8872:53;;;8905:18;;:::i;:::-;8955:7;8945:8;8941:22;8938:55;;;8975:16;;;;8938:55;9054:22;;;;9014:15;;;;8816:270;;;8820:3;8670:422;;;;;:::o;9097:806::-;9146:5;9176:8;9166:80;;-1:-1:-1;9217:1:1;9231:5;;9166:80;9265:4;9255:76;;-1:-1:-1;9302:1:1;9316:5;;9255:76;9347:4;9365:1;9360:59;;;;9433:1;9428:130;;;;9340:218;;9360:59;9390:1;9381:10;;9404:5;;;9428:130;9465:3;9455:8;9452:17;9449:43;;;9472:18;;:::i;:::-;-1:-1:-1;;9528:1:1;9514:16;;9543:5;;9340:218;;9642:2;9632:8;9629:16;9623:3;9617:4;9614:13;9610:36;9604:2;9594:8;9591:16;9586:2;9580:4;9577:12;9573:35;9570:77;9567:159;;;-1:-1:-1;9679:19:1;;;9711:5;;9567:159;9758:34;9783:8;9777:4;9758:34;:::i;:::-;9828:6;9824:1;9820:6;9816:19;9807:7;9804:32;9801:58;;;9839:18;;:::i;:::-;9877:20;;9097:806;-1:-1:-1;;;9097:806:1:o;9908:140::-;9966:5;9995:47;10036:4;10026:8;10022:19;10016:4;9995:47;:::i;10053:168::-;10126:9;;;10157;;10174:15;;;10168:22;;10154:37;10144:71;;10195:18;;:::i;10855:217::-;10895:1;10921;10911:132;;10965:10;10960:3;10956:20;10953:1;10946:31;11000:4;10997:1;10990:15;11028:4;11025:1;11018:15;10911:132;-1:-1:-1;11057:9:1;;10855:217::o

Swarm Source

ipfs://d586956d2eb97a4b3b667bc06ca904ce97ab7dbe1f5621b37d240d6b0903d539

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
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.