Contract 0xcA2afb150dfbd98d4adC764371535acfdc33360F 1

Contract Overview

Balance:
0 Ether
Txn Hash
Method
Block
From
To
Value
0xaba34b0224ba07af2834e84f60f2963e9c5deac6ca8285f7b0c72bea3a78425fCreate Wallet84410612020-08-05 21:55:50744 days 1 hr ago0x1ec6d5f64f273af60fceeae33201841443033ee5 IN  0xca2afb150dfbd98d4adc764371535acfdc33360f0 Ether0.001888092
0xce051af78ef980702de8934209fa2f824f04f0a7455a71bb6ea0de9305dd2021Create Wallet64706142019-09-27 15:57:531057 days 7 hrs ago0x51e34b6b88f8d5934ee354b0aca0fda33a2b75f9 IN  0xca2afb150dfbd98d4adc764371535acfdc33360f0 Ether0.0159707117
0xa64dbab98070816910eda610fb9c4f18a4e941b78618148a34c113c82a7d1e45Create Wallet63797902019-09-12 22:46:381072 days 53 mins ago0x52c0eb2a7335e800cdbcae2101d0c3f5b7499073 IN  0xca2afb150dfbd98d4adc764371535acfdc33360f0 Ether0.001260881.34215155
0x0bb627ab38ddd62539d8776166d3ee4d049ad5cc6e84d1c2d874a738b3f81fe7Create Wallet63696162019-09-11 11:02:471073 days 12 hrs ago0xfb8d157db884b5ce7d4604142e79957e984fc1a0 IN  0xca2afb150dfbd98d4adc764371535acfdc33360f0 Ether0.000026171.17800119
0xbcdd37ca46454f9255cca1462f47e6ab34da16ee8c212ce980e1f2b60db0b1acCreate Wallet63696032019-09-11 10:49:521073 days 12 hrs ago0xfb8d157db884b5ce7d4604142e79957e984fc1a0 IN  0xca2afb150dfbd98d4adc764371535acfdc33360f0 Ether0.001106671.17800119
0xdeae639e5cd9d932f93edc092c27221df32490a422ccb4ed2de2338faefa6ff7Create Wallet63690672019-09-11 7:17:121073 days 16 hrs ago0x8e1522c946e1e48c3638bbcb832931018f2107bd IN  0xca2afb150dfbd98d4adc764371535acfdc33360f0 Ether0.00187892
0xbef1151e888d3b28a019ddbcedfb0fdc2c04e025c24c339ee5139dd6beacf27eCreate Wallet63612562019-09-10 2:44:421074 days 20 hrs ago0x52c3a9b0f293cac8c1baabe5b62524a71211a616 IN  0xca2afb150dfbd98d4adc764371535acfdc33360f0 Ether0.001750431.86324771
0x7e88d64cf8542de5af6f37d0b3fe44c7df852588c56117d4f9770e120cbfe8b1Create Wallet63596142019-09-09 19:44:281075 days 3 hrs ago0x4bdd47ebb2d8573726d402f289ca9b0528470c2b IN  0xca2afb150dfbd98d4adc764371535acfdc33360f0 Ether0.001627371.73225703
0x327966286807f4a2c6c9727557f29f60c73c4d333cc7f3f003dd2452a1ad4a5fCreate Wallet63572922019-09-09 10:48:501075 days 12 hrs ago0x0cdf0edd304a8e1715d5043d0afe3d3322cc6e3b IN  0xca2afb150dfbd98d4adc764371535acfdc33360f0 Ether0.0093945410
0x16d6e51c05947c4554f4c73dc2ad9ce180638777da2e67070a7a23685dfa2facCreate Wallet63569882019-09-09 9:35:331075 days 14 hrs ago0x4d2ef986b4d09e44c494bac99de3e98e92ed75c4 IN  0xca2afb150dfbd98d4adc764371535acfdc33360f0 Ether0.001618931.72326979
0x74bb9bd3cb7043b57c728bb137a78a3dd6f86403a469361b1172c098d6ea0d28Create Wallet63568822019-09-09 9:07:111075 days 14 hrs ago0x272b85418f914c3e2fedbb163a8696db29e32a7e IN  0xca2afb150dfbd98d4adc764371535acfdc33360f0 Ether0.004697275
0x6b98c4647c740dc1f8783321d349a49c8547c7f76ba1f31fb603745e725b452eCreate Wallet63566912019-09-09 8:25:521075 days 15 hrs ago0x05182e579fdfcf69e4390c3411d8fea1fb6467cf IN  0xca2afb150dfbd98d4adc764371535acfdc33360f0 Ether0.008455089
0x92283da26a9943655a5934b590abd34a27fe91894a851c7a9353207ac3fbf800Create Wallet63566362019-09-09 8:13:001075 days 15 hrs ago0x5c6880d6a9181461915b3102f05ebeff1e0d284c IN  0xca2afb150dfbd98d4adc764371535acfdc33360f0 Ether0.001734171.84593832
0xa888b7ea0c317d706c84cd5c012d8564213fef378c3db75e6b88d30c3c93cceaCreate Wallet63406102019-09-06 19:02:111078 days 4 hrs ago0xe4de7c63190fa9a04f60e8ad0614c12bc64dc403 IN  0xca2afb150dfbd98d4adc764371535acfdc33360f0 Ether0.000939451
0x3ac798dcc8b51dc2cff8047e41b6ff8b76af7dcc69d75b5df0cc0ca1b3b029f1Create Wallet63269482019-09-04 13:56:231080 days 9 hrs ago0x6f5e9486228f29a48d065f5a27888a31230a3c88 IN  0xca2afb150dfbd98d4adc764371535acfdc33360f0 Ether0.004697275
0xccf96d86c8095b3da40b913f5e35d5f190a51a83990cebdcda2db1c9e3b1324eCreate Wallet63265442019-09-04 12:46:011080 days 10 hrs ago0x1e09a22f24d8fd302b2028a688658e9b29551969 IN  0xca2afb150dfbd98d4adc764371535acfdc33360f0 Ether0.0190890820
0x1a0b596db99d3423864f6337fd61d7725b01e4eba98a6f7d3428eb05c5c15e180x6080604063265282019-09-04 12:42:531080 days 10 hrs ago0x1e09a22f24d8fd302b2028a688658e9b29551969 IN  Contract Creation0 Ether0.0659805240
[ Download CSV Export 
Latest 15 internal transactions
Parent Txn Hash Block From To Value
0xaba34b0224ba07af2834e84f60f2963e9c5deac6ca8285f7b0c72bea3a78425f84410612020-08-05 21:55:50744 days 1 hr ago 0xca2afb150dfbd98d4adc764371535acfdc33360f 0xc5b96f009d2054cc98de6c8e491ee013803a8d020 Ether
0xce051af78ef980702de8934209fa2f824f04f0a7455a71bb6ea0de9305dd202164706142019-09-27 15:57:531057 days 7 hrs ago 0xca2afb150dfbd98d4adc764371535acfdc33360f 0xc5b96f009d2054cc98de6c8e491ee013803a8d020 Ether
0xa64dbab98070816910eda610fb9c4f18a4e941b78618148a34c113c82a7d1e4563797902019-09-12 22:46:381072 days 53 mins ago 0xca2afb150dfbd98d4adc764371535acfdc33360f 0xc5b96f009d2054cc98de6c8e491ee013803a8d020 Ether
0xbcdd37ca46454f9255cca1462f47e6ab34da16ee8c212ce980e1f2b60db0b1ac63696032019-09-11 10:49:521073 days 12 hrs ago 0xca2afb150dfbd98d4adc764371535acfdc33360f 0xc5b96f009d2054cc98de6c8e491ee013803a8d020 Ether
0xdeae639e5cd9d932f93edc092c27221df32490a422ccb4ed2de2338faefa6ff763690672019-09-11 7:17:121073 days 16 hrs ago 0xca2afb150dfbd98d4adc764371535acfdc33360f 0xc5b96f009d2054cc98de6c8e491ee013803a8d020 Ether
0xbef1151e888d3b28a019ddbcedfb0fdc2c04e025c24c339ee5139dd6beacf27e63612562019-09-10 2:44:421074 days 20 hrs ago 0xca2afb150dfbd98d4adc764371535acfdc33360f 0xc5b96f009d2054cc98de6c8e491ee013803a8d020 Ether
0x7e88d64cf8542de5af6f37d0b3fe44c7df852588c56117d4f9770e120cbfe8b163596142019-09-09 19:44:281075 days 3 hrs ago 0xca2afb150dfbd98d4adc764371535acfdc33360f 0xc5b96f009d2054cc98de6c8e491ee013803a8d020 Ether
0x327966286807f4a2c6c9727557f29f60c73c4d333cc7f3f003dd2452a1ad4a5f63572922019-09-09 10:48:501075 days 12 hrs ago 0xca2afb150dfbd98d4adc764371535acfdc33360f 0xc5b96f009d2054cc98de6c8e491ee013803a8d020 Ether
0x16d6e51c05947c4554f4c73dc2ad9ce180638777da2e67070a7a23685dfa2fac63569882019-09-09 9:35:331075 days 14 hrs ago 0xca2afb150dfbd98d4adc764371535acfdc33360f 0xc5b96f009d2054cc98de6c8e491ee013803a8d020 Ether
0x74bb9bd3cb7043b57c728bb137a78a3dd6f86403a469361b1172c098d6ea0d2863568822019-09-09 9:07:111075 days 14 hrs ago 0xca2afb150dfbd98d4adc764371535acfdc33360f 0xc5b96f009d2054cc98de6c8e491ee013803a8d020 Ether
0x6b98c4647c740dc1f8783321d349a49c8547c7f76ba1f31fb603745e725b452e63566912019-09-09 8:25:521075 days 15 hrs ago 0xca2afb150dfbd98d4adc764371535acfdc33360f 0xc5b96f009d2054cc98de6c8e491ee013803a8d020 Ether
0x92283da26a9943655a5934b590abd34a27fe91894a851c7a9353207ac3fbf80063566362019-09-09 8:13:001075 days 15 hrs ago 0xca2afb150dfbd98d4adc764371535acfdc33360f 0xc5b96f009d2054cc98de6c8e491ee013803a8d020 Ether
0xa888b7ea0c317d706c84cd5c012d8564213fef378c3db75e6b88d30c3c93ccea63406102019-09-06 19:02:111078 days 4 hrs ago 0xca2afb150dfbd98d4adc764371535acfdc33360f 0xc5b96f009d2054cc98de6c8e491ee013803a8d020 Ether
0x3ac798dcc8b51dc2cff8047e41b6ff8b76af7dcc69d75b5df0cc0ca1b3b029f163269482019-09-04 13:56:231080 days 9 hrs ago 0xca2afb150dfbd98d4adc764371535acfdc33360f 0xc5b96f009d2054cc98de6c8e491ee013803a8d020 Ether
0xccf96d86c8095b3da40b913f5e35d5f190a51a83990cebdcda2db1c9e3b1324e63265442019-09-04 12:46:011080 days 10 hrs ago 0xca2afb150dfbd98d4adc764371535acfdc33360f 0xc5b96f009d2054cc98de6c8e491ee013803a8d020 Ether
[ Download CSV Export 
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x22096790896B47d1c9Fe4ecbEc93b3FecE4fd42D

Contract Name:
WalletManager

Compiler Version
v0.5.10+commit.5a6ea5b1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2019-08-23
*/

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

pragma solidity ^0.5.0;

/**
 * @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.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be aplied to your functions to restrict their use to
 * the owner.
 */
contract Ownable {
    address private _owner;

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

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

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

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

    /**
     * @dev Returns true if the caller is the current owner.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == _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 onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

pragma solidity ^0.5.0;

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

    /**
     * @dev Give an account access to this role.
     */
    function add(Role storage role, address account) internal {
        require(!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: openzeppelin-solidity/contracts/access/roles/PauserRole.sol

pragma solidity ^0.5.0;


contract PauserRole {
    using Roles for Roles.Role;

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

    Roles.Role private _pausers;

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

    modifier onlyPauser() {
        require(isPauser(msg.sender), "PauserRole: caller does not have the Pauser role");
        _;
    }

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

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

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

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

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

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

pragma solidity ^0.5.0;


/**
 * @dev Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 *
 * This module is used through inheritance. It will make available the
 * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
 * the functions of your contract. Note that they will not be pausable by
 * simply including this module, only once the modifiers are put in place.
 */
contract Pausable is PauserRole {
    /**
     * @dev Emitted when the pause is triggered by a pauser (`account`).
     */
    event Paused(address account);

    /**
     * @dev Emitted when the pause is lifted by a pauser (`account`).
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     * @dev Initializes the contract in unpaused state. Assigns the Pauser role
     * to the deployer.
     */
    constructor () internal {
        _paused = false;
    }

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

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

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

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

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

// File: contracts/interfaces/IWalletDeployer.sol

pragma solidity 0.5.10;


interface IWalletDeployer {

    function deploy(address owner) external returns (address);
}

// File: contracts/WalletManager.sol

pragma solidity 0.5.10;





/**
* @dev Wallet Manager contract
*/
contract WalletManager is Ownable, Pausable {

    //List of all wallets
    mapping(address => address) private _userVsWallet;

    //List of registered users
    address[] private _users;

    IWalletDeployer private _walletDeployer;

    event WalletCreated(address indexed user, address indexed wallet);

    event WalletDeployerUpdated(address indexed walletDeployer);

    constructor(address walletDeployer) public {
        require(
            walletDeployer != address(0),
            "WalletManager: Invalid wallet deployer address!!"
        );

        _walletDeployer = IWalletDeployer(walletDeployer);
    }

    /**
    * @dev Returns wallet address of the user.
    * If user is not registered so far than it will return zero address
    * @param user Address of the user
    */
    function getWallet(address user) external view returns(address) {
        return _userVsWallet[user];
    }

    /**
    * @dev Returns total count of registered users
    */
    function getUserCount() external view returns (uint256) {
        return _users.length;
    }

    /**
    * @dev Returns list of registered users
    */
    function getUsers() external view returns(address[] memory) {
        return _users;
    }

    /**
    * @dev Returns the current wallet deployer address
    */
    function getWalletDeployer() external view returns(address) {
        return address(_walletDeployer);
    }

    /**
    * @dev Allows owner of the contract to update wallet deployer
    * @param newWalletDeployer Address of the new wallet deployer
    */
    function setWalletDeployer(address newWalletDeployer) external onlyOwner {
        require(
            newWalletDeployer != address(0),
            "WalletManager: Invalid wallet deployer address!!"
        );
        _walletDeployer = IWalletDeployer(newWalletDeployer);

        emit WalletDeployerUpdated(newWalletDeployer);
    }

    /**
    * @dev Allows new user to create a new wallet for themselves
    */
    function createWallet() external whenNotPaused {
        require(
            _userVsWallet[msg.sender] == address(0),
            "WalletManager: Wallet already exist for the user!!"
        );
        address wallet = _walletDeployer.deploy(msg.sender);

        _userVsWallet[msg.sender] = wallet;
        _users.push(msg.sender);

        emit WalletCreated(msg.sender, wallet);

    }


}

Contract ABI

[{"constant":true,"inputs":[],"name":"getUsers","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"getWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"createWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isPauser","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getWalletDeployer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newWalletDeployer","type":"address"}],"name":"setWalletDeployer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getUserCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"walletDeployer","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":true,"name":"wallet","type":"address"}],"name":"WalletCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"walletDeployer","type":"address"}],"name":"WalletDeployerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60806040523480156200001157600080fd5b5060405162001a4238038062001a42833981810160405260208110156200003757600080fd5b8101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a362000115336200020060201b60201c565b6000600260006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620001b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180620019f06030913960400191505060405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000425565b6200021b8160016200026160201b620013b01790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b6200027382826200034560201b60201c565b15620002e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620003ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062001a206022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6115bb80620004356000396000f3fe608060405234801561001057600080fd5b50600436106100ff5760003560e01c806378cb10d8116100975780638f32d59b116100665780638f32d59b1461036f57806395a6a03214610391578063b5cb15f7146103d5578063f2fde38b146103f3576100ff565b806378cb10d81461028d57806382dc1ec4146102d75780638456cb591461031b5780638da5cb5b14610325576100ff565b806346fbf68e116100d357806346fbf68e146101fb5780635c975abb146102575780636ef8d66d14610279578063715018a614610283576100ff565b8062ce8e3e1461010457806304d0a6471461016357806311ebbf24146101e75780633f4ba83a146101f1575b600080fd5b61010c610437565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561014f578082015181840152602081019050610134565b505050509050019250505060405180910390f35b6101a56004803603602081101561017957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104c5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101ef61052e565b005b6101f96108b6565b005b61023d6004803603602081101561021157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a16565b604051808215151515815260200191505060405180910390f35b61025f610a33565b604051808215151515815260200191505060405180910390f35b610281610a4a565b005b61028b610a55565b005b610295610b8e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610319600480360360208110156102ed57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb8565b005b610323610c22565b005b61032d610d83565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610377610dac565b604051808215151515815260200191505060405180910390f35b6103d3600480360360208110156103a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e03565b005b6103dd610f8a565b6040518082815260200191505060405180910390f35b6104356004803603602081101561040957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f97565b005b606060048054806020026020016040519081016040528092919081815260200182805480156104bb57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610471575b5050505050905090565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600260009054906101000a900460ff16156105b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610695576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806115336032913960400191505060405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c96a389336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561073857600080fd5b505af115801561074c573d6000803e3d6000fd5b505050506040513d602081101561076257600080fd5b8101908080519060200190929190505050905080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060043390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f5b03bfed1c14a02bdeceb5fa582eb1a5765fc0bc64ca0e6af4c20afc9487f08160405160405180910390a350565b6108bf33610a16565b610914576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806114bc6030913960400191505060405180910390fd5b600260009054906101000a900460ff16610996576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600260006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000610a2c82600161101d90919063ffffffff16565b9050919050565b6000600260009054906101000a900460ff16905090565b610a53336110fb565b565b610a5d610dac565b610acf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bc133610a16565b610c16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806114bc6030913960400191505060405180910390fd5b610c1f81611155565b50565b610c2b33610a16565b610c80576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806114bc6030913960400191505060405180910390fd5b600260009054906101000a900460ff1615610d03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b610e0b610dac565b610e7d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061148c6030913960400191505060405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f489960ddd5e3c60ab990e62c35375e90e657956289fd027ca620896f9340812b60405160405180910390a250565b6000600480549050905090565b610f9f610dac565b611011576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61101a816111af565b50565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806115656022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61110f8160016112f390919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b6111698160016113b090919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611235576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114ec6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6112fd828261101d565b611352576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806115126021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6113ba828261101d565b1561142d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fe57616c6c65744d616e616765723a20496e76616c69642077616c6c6574206465706c6f79657220616464726573732121506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6557616c6c65744d616e616765723a2057616c6c657420616c726561647920657869737420666f722074686520757365722121526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a72305820eb2e3e3d5a240f35c7d32f960e190fc23f8331393b6d69bd5ded355b479787a564736f6c634300050a003257616c6c65744d616e616765723a20496e76616c69642077616c6c6574206465706c6f79657220616464726573732121526f6c65733a206163636f756e7420697320746865207a65726f206164647265737300000000000000000000000005cf7d48eed83704998dbfcf61eaa83d1702f4f4

Deployed ByteCode Sourcemap

6998:2462:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6998:2462:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8177:92;;;:::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;8177:92:0;;;;;;;;;;;;;;;;;7826:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7826:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9052:401;;;:::i;:::-;;6575:118;;;:::i;:::-;;4061:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4061:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5784:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4278:77;;;:::i;:::-;;1718:140;;;:::i;:::-;;8350:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4178:92;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4178:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6364:116;;;:::i;:::-;;907:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1273:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8619:342;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8619:342:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;8012:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2013:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2013:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;8177:92;8219:16;8255:6;8248:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8177:92;:::o;7826:109::-;7881:7;7908:13;:19;7922:4;7908:19;;;;;;;;;;;;;;;;;;;;;;;;;7901:26;;7826:109;;;:::o;9052:401::-;6021:7;;;;;;;;;;;6020:8;6012:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9169:1;9132:39;;:13;:25;9146:10;9132:25;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;9110:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9260:14;9277:15;;;;;;;;;;;:22;;;9300:10;9277:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9277:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9277:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9277:34:0;;;;;;;;;;;;;;;;9260:51;;9352:6;9324:13;:25;9338:10;9324:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;9369:6;9381:10;9369:23;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9369:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9436:6;9410:33;;9424:10;9410:33;;;;;;;;;;;;6060:1;9052:401::o;6575:118::-;3960:20;3969:10;3960:8;:20::i;:::-;3952:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6220:7;;;;;;;;;;;6212:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6644:5;6634:7;;:15;;;;;;;;;;;;;;;;;;6665:20;6674:10;6665:20;;;;;;;;;;;;;;;;;;;;;;6575:118::o;4061:109::-;4117:4;4141:21;4154:7;4141:8;:12;;:21;;;;:::i;:::-;4134:28;;4061:109;;;:::o;5784:78::-;5823:4;5847:7;;;;;;;;;;;5840:14;;5784:78;:::o;4278:77::-;4322:25;4336:10;4322:13;:25::i;:::-;4278:77::o;1718:140::-;1119:9;:7;:9::i;:::-;1111:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1817:1;1780:40;;1801:6;;;;;;;;;;;1780:40;;;;;;;;;;;;1848:1;1831:6;;:19;;;;;;;;;;;;;;;;;;1718:140::o;8350:110::-;8401:7;8436:15;;;;;;;;;;;8421:31;;8350:110;:::o;4178:92::-;3960:20;3969:10;3960:8;:20::i;:::-;3952:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4243:19;4254:7;4243:10;:19::i;:::-;4178:92;:::o;6364:116::-;3960:20;3969:10;3960:8;:20::i;:::-;3952:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6021:7;;;;;;;;;;;6020:8;6012:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6434:4;6424:7;;:14;;;;;;;;;;;;;;;;;;6454:18;6461:10;6454:18;;;;;;;;;;;;;;;;;;;;;;6364:116::o;907:79::-;945:7;972:6;;;;;;;;;;;965:13;;907:79;:::o;1273:92::-;1313:4;1351:6;;;;;;;;;;;1337:20;;:10;:20;;;1330:27;;1273:92;:::o;8619:342::-;1119:9;:7;:9::i;:::-;1111:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8754:1;8725:31;;:17;:31;;;;8703:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8877:17;8843:15;;:52;;;;;;;;;;;;;;;;;;8935:17;8913:40;;;;;;;;;;;;8619:342;:::o;8012:95::-;8059:7;8086:6;:13;;;;8079:20;;8012:95;:::o;2013:109::-;1119:9;:7;:9::i;:::-;1111:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2086:28;2105:8;2086:18;:28::i;:::-;2013:109;:::o;3335:203::-;3407:4;3451:1;3432:21;;:7;:21;;;;3424:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3510:4;:11;;:20;3522:7;3510:20;;;;;;;;;;;;;;;;;;;;;;;;;3503:27;;3335:203;;;;:::o;4493:130::-;4553:24;4569:7;4553:8;:15;;:24;;;;:::i;:::-;4607:7;4593:22;;;;;;;;;;;;4493:130;:::o;4363:122::-;4420:21;4433:7;4420:8;:12;;:21;;;;:::i;:::-;4469:7;4457:20;;;;;;;;;;;;4363:122;:::o;2228:229::-;2322:1;2302:22;;:8;:22;;;;2294:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2412:8;2383:38;;2404:6;;;;;;;;;;;2383:38;;;;;;;;;;;;2441:8;2432:6;;:17;;;;;;;;;;;;;;;;;;2228:229;:::o;3057:183::-;3137:18;3141:4;3147:7;3137:3;:18::i;:::-;3129:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3227:5;3204:4;:11;;:20;3216:7;3204:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;3057:183;;:::o;2799:178::-;2877:18;2881:4;2887:7;2877:3;:18::i;:::-;2876:19;2868:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2965:4;2942;:11;;:20;2954:7;2942:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;2799:178;;:::o

Swarm Source

bzzr://eb2e3e3d5a240f35c7d32f960e190fc23f8331393b6d69bd5ded355b479787a5
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading

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.