S Price: $0.500446 (-1.07%)

Contract

0xA0057B8d69a861F4f7067dBfCD3014D2db921B8E

Overview

S Balance

Sonic LogoSonic LogoSonic Logo0 S

S Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Deploy Token157784022025-03-25 2:11:408 days ago1742868700IN
0xA0057B8d...2db921B8E
0 S0.0695740550
Deploy Token157782502025-03-25 2:10:378 days ago1742868637IN
0xA0057B8d...2db921B8E
0 S0.0695836550
Deploy Token157780862025-03-25 2:09:348 days ago1742868574IN
0xA0057B8d...2db921B8E
0 S0.0695726550
Deploy Token157779372025-03-25 2:08:308 days ago1742868510IN
0xA0057B8d...2db921B8E
0 S0.0750937353.96785714
Deploy Token157777702025-03-25 2:07:138 days ago1742868433IN
0xA0057B8d...2db921B8E
0 S0.0695764550
Deploy Token157776432025-03-25 2:06:108 days ago1742868370IN
0xA0057B8d...2db921B8E
0 S0.0695740550
Deploy Token157775812025-03-25 2:05:398 days ago1742868339IN
0xA0057B8d...2db921B8E
0 S0.0695788550
Deploy Token157767052025-03-25 1:58:288 days ago1742867908IN
0xA0057B8d...2db921B8E
0 S0.0853830455
Deploy Token157766962025-03-25 1:58:228 days ago1742867902IN
0xA0057B8d...2db921B8E
0 S0.0853782655
Deploy Token157766742025-03-25 1:58:128 days ago1742867892IN
0xA0057B8d...2db921B8E
0 S0.0853877755
Deploy Token157766272025-03-25 1:57:468 days ago1742867866IN
0xA0057B8d...2db921B8E
0 S0.0853768855
Deploy Token157766182025-03-25 1:57:408 days ago1742867860IN
0xA0057B8d...2db921B8E
0 S0.0853768855
Deploy Token157765932025-03-25 1:57:268 days ago1742867846IN
0xA0057B8d...2db921B8E
0 S0.0853806855
Deploy Token157765562025-03-25 1:57:078 days ago1742867827IN
0xA0057B8d...2db921B8E
0 S0.0853782655
Deploy Token157765352025-03-25 1:56:538 days ago1742867813IN
0xA0057B8d...2db921B8E
0 S0.0853830455
Deploy Token157689342025-03-25 1:02:168 days ago1742864536IN
0xA0057B8d...2db921B8E
0 S0.0695776550
Deploy Token157688272025-03-25 1:01:348 days ago1742864494IN
0xA0057B8d...2db921B8E
0 S0.0695752550
Deploy Token157687582025-03-25 1:01:098 days ago1742864469IN
0xA0057B8d...2db921B8E
0 S0.0704350550

Latest 18 internal transactions

Parent Transaction Hash Block From To
157784022025-03-25 2:11:408 days ago1742868700
0xA0057B8d...2db921B8E
 Contract Creation0 S
157782502025-03-25 2:10:378 days ago1742868637
0xA0057B8d...2db921B8E
 Contract Creation0 S
157780862025-03-25 2:09:348 days ago1742868574
0xA0057B8d...2db921B8E
 Contract Creation0 S
157779372025-03-25 2:08:308 days ago1742868510
0xA0057B8d...2db921B8E
 Contract Creation0 S
157777702025-03-25 2:07:138 days ago1742868433
0xA0057B8d...2db921B8E
 Contract Creation0 S
157776432025-03-25 2:06:108 days ago1742868370
0xA0057B8d...2db921B8E
 Contract Creation0 S
157775812025-03-25 2:05:398 days ago1742868339
0xA0057B8d...2db921B8E
 Contract Creation0 S
157767052025-03-25 1:58:288 days ago1742867908
0xA0057B8d...2db921B8E
 Contract Creation0 S
157766962025-03-25 1:58:228 days ago1742867902
0xA0057B8d...2db921B8E
 Contract Creation0 S
157766742025-03-25 1:58:128 days ago1742867892
0xA0057B8d...2db921B8E
 Contract Creation0 S
157766272025-03-25 1:57:468 days ago1742867866
0xA0057B8d...2db921B8E
 Contract Creation0 S
157766182025-03-25 1:57:408 days ago1742867860
0xA0057B8d...2db921B8E
 Contract Creation0 S
157765932025-03-25 1:57:268 days ago1742867846
0xA0057B8d...2db921B8E
 Contract Creation0 S
157765562025-03-25 1:57:078 days ago1742867827
0xA0057B8d...2db921B8E
 Contract Creation0 S
157765352025-03-25 1:56:538 days ago1742867813
0xA0057B8d...2db921B8E
 Contract Creation0 S
157689342025-03-25 1:02:168 days ago1742864536
0xA0057B8d...2db921B8E
 Contract Creation0 S
157688272025-03-25 1:01:348 days ago1742864494
0xA0057B8d...2db921B8E
 Contract Creation0 S
157687582025-03-25 1:01:098 days ago1742864469
0xA0057B8d...2db921B8E
 Contract Creation0 S
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TokenFactory

Compiler Version
v0.8.29+commit.ab55807c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at SonicScan.org on 2025-03-20
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;

// Full implementation of OpenZeppelin's ERC20 and Ownable contracts
contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract ERC20 is Context, IERC20 {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual returns (string memory) {
        return _name;
    }

    function symbol() public view virtual returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

contract MyToken is ERC20, Ownable {
    // Fixed total supply: 100,000,000,000 tokens with 18 decimals
    uint256 public constant TOTAL_SUPPLY = 100_000_000_000 * (10 ** 18);

    constructor(string memory name, string memory symbol, address owner) ERC20(name, symbol) {
        // Mint the total supply to the owner's address
        _mint(owner, TOTAL_SUPPLY);

        // Transfer ownership to the specified owner
        _transferOwnership(owner);
    }
}

contract TokenFactory {
    // Array to store addresses of all deployed tokens
    address[] public deployedTokens;

    // Event to emit when a new token is deployed
    event TokenDeployed(address indexed tokenAddress, string name, string symbol, address indexed owner);

    // Function to deploy a new token
    function deployToken(string memory name, string memory symbol) external {
        // Deploy a new MyToken contract and pass the user's address as the owner
        MyToken newToken = new MyToken(name, symbol, msg.sender);

        // Add the deployed token's address to the array
        deployedTokens.push(address(newToken));

        // Emit the TokenDeployed event
        emit TokenDeployed(address(newToken), name, symbol, msg.sender);
    }

    // Function to get the total number of deployed tokens
    function getDeployedTokensCount() external view returns (uint256) {
        return deployedTokens.length;
    }

    // Function to get the address of a deployed token by index
    function getDeployedToken(uint256 index) external view returns (address) {
        require(index < deployedTokens.length, "Index out of bounds");
        return deployedTokens[index];
    }
}

Contract Security Audit

Contract ABI

API
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"string","name":"symbol","type":"string"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"TokenDeployed","type":"event"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"name":"deployToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"deployedTokens","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getDeployedToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDeployedTokensCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

6080604052348015600e575f5ffd5b506126e38061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80630d0d4f241461004e5780631d12b9381461007e57806325f1be1f1461009a578063ec81aadb146100b8575b5f5ffd5b6100686004803603810190610063919061030a565b6100e8565b6040516100759190610374565b60405180910390f35b610098600480360381019061009391906104c9565b610171565b005b6100a2610274565b6040516100af919061054e565b60405180910390f35b6100d260048036038101906100cd919061030a565b61027f565b6040516100df9190610374565b60405180910390f35b5f5f80549050821061012f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610126906105c1565b60405180910390fd5b5f8281548110610142576101416105df565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f828233604051610181906102b9565b61018d9392919061065c565b604051809103905ff0801580156101a6573d5f5f3e3d5ffd5b5090505f81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f9b125304de5c1a87b82cb7735777610731fc602db9764374e5c43ab2a1d26896858560405161026792919061069f565b60405180910390a3505050565b5f5f80549050905090565b5f818154811061028d575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611fd9806106d583390190565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6102e9816102d7565b81146102f3575f5ffd5b50565b5f81359050610304816102e0565b92915050565b5f6020828403121561031f5761031e6102cf565b5b5f61032c848285016102f6565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61035e82610335565b9050919050565b61036e81610354565b82525050565b5f6020820190506103875f830184610365565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103db82610395565b810181811067ffffffffffffffff821117156103fa576103f96103a5565b5b80604052505050565b5f61040c6102c6565b905061041882826103d2565b919050565b5f67ffffffffffffffff821115610437576104366103a5565b5b61044082610395565b9050602081019050919050565b828183375f83830152505050565b5f61046d6104688461041d565b610403565b90508281526020810184848401111561048957610488610391565b5b61049484828561044d565b509392505050565b5f82601f8301126104b0576104af61038d565b5b81356104c084826020860161045b565b91505092915050565b5f5f604083850312156104df576104de6102cf565b5b5f83013567ffffffffffffffff8111156104fc576104fb6102d3565b5b6105088582860161049c565b925050602083013567ffffffffffffffff811115610529576105286102d3565b5b6105358582860161049c565b9150509250929050565b610548816102d7565b82525050565b5f6020820190506105615f83018461053f565b92915050565b5f82825260208201905092915050565b7f496e646578206f7574206f6620626f756e6473000000000000000000000000005f82015250565b5f6105ab601383610567565b91506105b682610577565b602082019050919050565b5f6020820190508181035f8301526105d88161059f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b8281835e5f83830152505050565b5f61062e8261060c565b6106388185610567565b9350610648818560208601610616565b61065181610395565b840191505092915050565b5f6060820190508181035f8301526106748186610624565b905081810360208301526106888185610624565b90506106976040830184610365565b949350505050565b5f6040820190508181035f8301526106b78185610624565b905081810360208301526106cb8184610624565b9050939250505056fe608060405234801561000f575f5ffd5b50604051611fd9380380611fd983398181016040528101906100319190610457565b8282816003908161004291906106ef565b50806004908161005291906106ef565b5050506100716100666100a560201b60201c565b6100ac60201b60201c565b61008e816c01431e0fae6d7217caa000000061016f60201b60201c565b61009d816100ac60201b60201c565b5050506108be565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036101dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d490610818565b60405180910390fd5b8060025f8282546101ee9190610863565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546102409190610863565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516102a491906108a5565b60405180910390a35050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61030f826102c9565b810181811067ffffffffffffffff8211171561032e5761032d6102d9565b5b80604052505050565b5f6103406102b0565b905061034c8282610306565b919050565b5f67ffffffffffffffff82111561036b5761036a6102d9565b5b610374826102c9565b9050602081019050919050565b8281835e5f83830152505050565b5f6103a161039c84610351565b610337565b9050828152602081018484840111156103bd576103bc6102c5565b5b6103c8848285610381565b509392505050565b5f82601f8301126103e4576103e36102c1565b5b81516103f484826020860161038f565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610426826103fd565b9050919050565b6104368161041c565b8114610440575f5ffd5b50565b5f815190506104518161042d565b92915050565b5f5f5f6060848603121561046e5761046d6102b9565b5b5f84015167ffffffffffffffff81111561048b5761048a6102bd565b5b610497868287016103d0565b935050602084015167ffffffffffffffff8111156104b8576104b76102bd565b5b6104c4868287016103d0565b92505060406104d586828701610443565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061052d57607f821691505b6020821081036105405761053f6104e9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610567565b6105ac8683610567565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105f06105eb6105e6846105c4565b6105cd565b6105c4565b9050919050565b5f819050919050565b610609836105d6565b61061d610615826105f7565b848454610573565b825550505050565b5f5f905090565b610634610625565b61063f818484610600565b505050565b5b81811015610662576106575f8261062c565b600181019050610645565b5050565b601f8211156106a75761067881610546565b61068184610558565b81016020851015610690578190505b6106a461069c85610558565b830182610644565b50505b505050565b5f82821c905092915050565b5f6106c75f19846008026106ac565b1980831691505092915050565b5f6106df83836106b8565b9150826002028217905092915050565b6106f8826104df565b67ffffffffffffffff811115610711576107106102d9565b5b61071b8254610516565b610726828285610666565b5f60209050601f831160018114610757575f8415610745578287015190505b61074f85826106d4565b8655506107b6565b601f19841661076586610546565b5f5b8281101561078c57848901518255600182019150602085019450602081019050610767565b868310156107a957848901516107a5601f8916826106b8565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610802601f836107be565b915061080d826107ce565b602082019050919050565b5f6020820190508181035f83015261082f816107f6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61086d826105c4565b9150610878836105c4565b92508282019050808211156108905761088f610836565b5b92915050565b61089f816105c4565b82525050565b5f6020820190506108b85f830184610896565b92915050565b61170e806108cb5f395ff3fe608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c8063715018a611610095578063a457c2d711610064578063a457c2d714610275578063a9059cbb146102a5578063dd62ed3e146102d5578063f2fde38b14610305576100f3565b8063715018a6146102115780638da5cb5b1461021b578063902d55a51461023957806395d89b4114610257576100f3565b806323b872dd116100d157806323b872dd14610163578063313ce5671461019357806339509351146101b157806370a08231146101e1576100f3565b806306fdde03146100f7578063095ea7b31461011557806318160ddd14610145575b5f5ffd5b6100ff610321565b60405161010c9190610ee4565b60405180910390f35b61012f600480360381019061012a9190610f95565b6103b1565b60405161013c9190610fed565b60405180910390f35b61014d6103ce565b60405161015a9190611015565b60405180910390f35b61017d6004803603810190610178919061102e565b6103d7565b60405161018a9190610fed565b60405180910390f35b61019b6104c9565b6040516101a89190611099565b60405180910390f35b6101cb60048036038101906101c69190610f95565b6104d1565b6040516101d89190610fed565b60405180910390f35b6101fb60048036038101906101f691906110b2565b610578565b6040516102089190611015565b60405180910390f35b6102196105bd565b005b610223610644565b60405161023091906110ec565b60405180910390f35b61024161066c565b60405161024e9190611015565b60405180910390f35b61025f61067d565b60405161026c9190610ee4565b60405180910390f35b61028f600480360381019061028a9190610f95565b61070d565b60405161029c9190610fed565b60405180910390f35b6102bf60048036038101906102ba9190610f95565b6107f3565b6040516102cc9190610fed565b60405180910390f35b6102ef60048036038101906102ea9190611105565b610810565b6040516102fc9190611015565b60405180910390f35b61031f600480360381019061031a91906110b2565b610892565b005b60606003805461033090611170565b80601f016020809104026020016040519081016040528092919081815260200182805461035c90611170565b80156103a75780601f1061037e576101008083540402835291602001916103a7565b820191905f5260205f20905b81548152906001019060200180831161038a57829003601f168201915b5050505050905090565b5f6103c46103bd610988565b848461098f565b6001905092915050565b5f600254905090565b5f6103e3848484610b52565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61042a610988565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156104a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a090611210565b60405180910390fd5b6104bd856104b5610988565b85840361098f565b60019150509392505050565b5f6012905090565b5f61056e6104dd610988565b848460015f6104ea610988565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610569919061125b565b61098f565b6001905092915050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6105c5610988565b73ffffffffffffffffffffffffffffffffffffffff166105e3610644565b73ffffffffffffffffffffffffffffffffffffffff1614610639576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610630906112d8565b60405180910390fd5b6106425f610db1565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6c01431e0fae6d7217caa000000081565b60606004805461068c90611170565b80601f01602080910402602001604051908101604052809291908181526020018280546106b890611170565b80156107035780601f106106da57610100808354040283529160200191610703565b820191905f5260205f20905b8154815290600101906020018083116106e657829003601f168201915b5050505050905090565b5f5f60015f61071a610988565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156107d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cb90611366565b60405180910390fd5b6107e86107df610988565b8585840361098f565b600191505092915050565b5f6108066107ff610988565b8484610b52565b6001905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61089a610988565b73ffffffffffffffffffffffffffffffffffffffff166108b8610644565b73ffffffffffffffffffffffffffffffffffffffff161461090e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610905906112d8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361097c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610973906113f4565b60405180910390fd5b61098581610db1565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f490611482565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6290611510565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b459190611015565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb79061159e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c259061162c565b60405180910390fd5b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca8906116ba565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610d3f919061125b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610da39190611015565b60405180910390a350505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610eb682610e74565b610ec08185610e7e565b9350610ed0818560208601610e8e565b610ed981610e9c565b840191505092915050565b5f6020820190508181035f830152610efc8184610eac565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f3182610f08565b9050919050565b610f4181610f27565b8114610f4b575f5ffd5b50565b5f81359050610f5c81610f38565b92915050565b5f819050919050565b610f7481610f62565b8114610f7e575f5ffd5b50565b5f81359050610f8f81610f6b565b92915050565b5f5f60408385031215610fab57610faa610f04565b5b5f610fb885828601610f4e565b9250506020610fc985828601610f81565b9150509250929050565b5f8115159050919050565b610fe781610fd3565b82525050565b5f6020820190506110005f830184610fde565b92915050565b61100f81610f62565b82525050565b5f6020820190506110285f830184611006565b92915050565b5f5f5f6060848603121561104557611044610f04565b5b5f61105286828701610f4e565b935050602061106386828701610f4e565b925050604061107486828701610f81565b9150509250925092565b5f60ff82169050919050565b6110938161107e565b82525050565b5f6020820190506110ac5f83018461108a565b92915050565b5f602082840312156110c7576110c6610f04565b5b5f6110d484828501610f4e565b91505092915050565b6110e681610f27565b82525050565b5f6020820190506110ff5f8301846110dd565b92915050565b5f5f6040838503121561111b5761111a610f04565b5b5f61112885828601610f4e565b925050602061113985828601610f4e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061118757607f821691505b60208210810361119a57611199611143565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6111fa602883610e7e565b9150611205826111a0565b604082019050919050565b5f6020820190508181035f830152611227816111ee565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61126582610f62565b915061127083610f62565b92508282019050808211156112885761128761122e565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6112c2602083610e7e565b91506112cd8261128e565b602082019050919050565b5f6020820190508181035f8301526112ef816112b6565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611350602583610e7e565b915061135b826112f6565b604082019050919050565b5f6020820190508181035f83015261137d81611344565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6113de602683610e7e565b91506113e982611384565b604082019050919050565b5f6020820190508181035f83015261140b816113d2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61146c602483610e7e565b915061147782611412565b604082019050919050565b5f6020820190508181035f83015261149981611460565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6114fa602283610e7e565b9150611505826114a0565b604082019050919050565b5f6020820190508181035f830152611527816114ee565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611588602583610e7e565b91506115938261152e565b604082019050919050565b5f6020820190508181035f8301526115b58161157c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611616602383610e7e565b9150611621826115bc565b604082019050919050565b5f6020820190508181035f8301526116438161160a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6116a4602683610e7e565b91506116af8261164a565b604082019050919050565b5f6020820190508181035f8301526116d181611698565b905091905056fea264697066735822122028d4ac91d04ef4d8820da256b6a1888b84beb8da5f4a03a7792e44ee972df08e64736f6c634300081d0033a264697066735822122029aadf665ca1e398a6bdc71576e9ee98ed2fc3fe80e1a97efdcd96eddb60b45464736f6c634300081d0033

Deployed Bytecode

0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80630d0d4f241461004e5780631d12b9381461007e57806325f1be1f1461009a578063ec81aadb146100b8575b5f5ffd5b6100686004803603810190610063919061030a565b6100e8565b6040516100759190610374565b60405180910390f35b610098600480360381019061009391906104c9565b610171565b005b6100a2610274565b6040516100af919061054e565b60405180910390f35b6100d260048036038101906100cd919061030a565b61027f565b6040516100df9190610374565b60405180910390f35b5f5f80549050821061012f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610126906105c1565b60405180910390fd5b5f8281548110610142576101416105df565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f828233604051610181906102b9565b61018d9392919061065c565b604051809103905ff0801580156101a6573d5f5f3e3d5ffd5b5090505f81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f9b125304de5c1a87b82cb7735777610731fc602db9764374e5c43ab2a1d26896858560405161026792919061069f565b60405180910390a3505050565b5f5f80549050905090565b5f818154811061028d575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611fd9806106d583390190565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6102e9816102d7565b81146102f3575f5ffd5b50565b5f81359050610304816102e0565b92915050565b5f6020828403121561031f5761031e6102cf565b5b5f61032c848285016102f6565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61035e82610335565b9050919050565b61036e81610354565b82525050565b5f6020820190506103875f830184610365565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103db82610395565b810181811067ffffffffffffffff821117156103fa576103f96103a5565b5b80604052505050565b5f61040c6102c6565b905061041882826103d2565b919050565b5f67ffffffffffffffff821115610437576104366103a5565b5b61044082610395565b9050602081019050919050565b828183375f83830152505050565b5f61046d6104688461041d565b610403565b90508281526020810184848401111561048957610488610391565b5b61049484828561044d565b509392505050565b5f82601f8301126104b0576104af61038d565b5b81356104c084826020860161045b565b91505092915050565b5f5f604083850312156104df576104de6102cf565b5b5f83013567ffffffffffffffff8111156104fc576104fb6102d3565b5b6105088582860161049c565b925050602083013567ffffffffffffffff811115610529576105286102d3565b5b6105358582860161049c565b9150509250929050565b610548816102d7565b82525050565b5f6020820190506105615f83018461053f565b92915050565b5f82825260208201905092915050565b7f496e646578206f7574206f6620626f756e6473000000000000000000000000005f82015250565b5f6105ab601383610567565b91506105b682610577565b602082019050919050565b5f6020820190508181035f8301526105d88161059f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b8281835e5f83830152505050565b5f61062e8261060c565b6106388185610567565b9350610648818560208601610616565b61065181610395565b840191505092915050565b5f6060820190508181035f8301526106748186610624565b905081810360208301526106888185610624565b90506106976040830184610365565b949350505050565b5f6040820190508181035f8301526106b78185610624565b905081810360208301526106cb8184610624565b9050939250505056fe608060405234801561000f575f5ffd5b50604051611fd9380380611fd983398181016040528101906100319190610457565b8282816003908161004291906106ef565b50806004908161005291906106ef565b5050506100716100666100a560201b60201c565b6100ac60201b60201c565b61008e816c01431e0fae6d7217caa000000061016f60201b60201c565b61009d816100ac60201b60201c565b5050506108be565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036101dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d490610818565b60405180910390fd5b8060025f8282546101ee9190610863565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546102409190610863565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516102a491906108a5565b60405180910390a35050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61030f826102c9565b810181811067ffffffffffffffff8211171561032e5761032d6102d9565b5b80604052505050565b5f6103406102b0565b905061034c8282610306565b919050565b5f67ffffffffffffffff82111561036b5761036a6102d9565b5b610374826102c9565b9050602081019050919050565b8281835e5f83830152505050565b5f6103a161039c84610351565b610337565b9050828152602081018484840111156103bd576103bc6102c5565b5b6103c8848285610381565b509392505050565b5f82601f8301126103e4576103e36102c1565b5b81516103f484826020860161038f565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610426826103fd565b9050919050565b6104368161041c565b8114610440575f5ffd5b50565b5f815190506104518161042d565b92915050565b5f5f5f6060848603121561046e5761046d6102b9565b5b5f84015167ffffffffffffffff81111561048b5761048a6102bd565b5b610497868287016103d0565b935050602084015167ffffffffffffffff8111156104b8576104b76102bd565b5b6104c4868287016103d0565b92505060406104d586828701610443565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061052d57607f821691505b6020821081036105405761053f6104e9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610567565b6105ac8683610567565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105f06105eb6105e6846105c4565b6105cd565b6105c4565b9050919050565b5f819050919050565b610609836105d6565b61061d610615826105f7565b848454610573565b825550505050565b5f5f905090565b610634610625565b61063f818484610600565b505050565b5b81811015610662576106575f8261062c565b600181019050610645565b5050565b601f8211156106a75761067881610546565b61068184610558565b81016020851015610690578190505b6106a461069c85610558565b830182610644565b50505b505050565b5f82821c905092915050565b5f6106c75f19846008026106ac565b1980831691505092915050565b5f6106df83836106b8565b9150826002028217905092915050565b6106f8826104df565b67ffffffffffffffff811115610711576107106102d9565b5b61071b8254610516565b610726828285610666565b5f60209050601f831160018114610757575f8415610745578287015190505b61074f85826106d4565b8655506107b6565b601f19841661076586610546565b5f5b8281101561078c57848901518255600182019150602085019450602081019050610767565b868310156107a957848901516107a5601f8916826106b8565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610802601f836107be565b915061080d826107ce565b602082019050919050565b5f6020820190508181035f83015261082f816107f6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61086d826105c4565b9150610878836105c4565b92508282019050808211156108905761088f610836565b5b92915050565b61089f816105c4565b82525050565b5f6020820190506108b85f830184610896565b92915050565b61170e806108cb5f395ff3fe608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c8063715018a611610095578063a457c2d711610064578063a457c2d714610275578063a9059cbb146102a5578063dd62ed3e146102d5578063f2fde38b14610305576100f3565b8063715018a6146102115780638da5cb5b1461021b578063902d55a51461023957806395d89b4114610257576100f3565b806323b872dd116100d157806323b872dd14610163578063313ce5671461019357806339509351146101b157806370a08231146101e1576100f3565b806306fdde03146100f7578063095ea7b31461011557806318160ddd14610145575b5f5ffd5b6100ff610321565b60405161010c9190610ee4565b60405180910390f35b61012f600480360381019061012a9190610f95565b6103b1565b60405161013c9190610fed565b60405180910390f35b61014d6103ce565b60405161015a9190611015565b60405180910390f35b61017d6004803603810190610178919061102e565b6103d7565b60405161018a9190610fed565b60405180910390f35b61019b6104c9565b6040516101a89190611099565b60405180910390f35b6101cb60048036038101906101c69190610f95565b6104d1565b6040516101d89190610fed565b60405180910390f35b6101fb60048036038101906101f691906110b2565b610578565b6040516102089190611015565b60405180910390f35b6102196105bd565b005b610223610644565b60405161023091906110ec565b60405180910390f35b61024161066c565b60405161024e9190611015565b60405180910390f35b61025f61067d565b60405161026c9190610ee4565b60405180910390f35b61028f600480360381019061028a9190610f95565b61070d565b60405161029c9190610fed565b60405180910390f35b6102bf60048036038101906102ba9190610f95565b6107f3565b6040516102cc9190610fed565b60405180910390f35b6102ef60048036038101906102ea9190611105565b610810565b6040516102fc9190611015565b60405180910390f35b61031f600480360381019061031a91906110b2565b610892565b005b60606003805461033090611170565b80601f016020809104026020016040519081016040528092919081815260200182805461035c90611170565b80156103a75780601f1061037e576101008083540402835291602001916103a7565b820191905f5260205f20905b81548152906001019060200180831161038a57829003601f168201915b5050505050905090565b5f6103c46103bd610988565b848461098f565b6001905092915050565b5f600254905090565b5f6103e3848484610b52565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61042a610988565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156104a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a090611210565b60405180910390fd5b6104bd856104b5610988565b85840361098f565b60019150509392505050565b5f6012905090565b5f61056e6104dd610988565b848460015f6104ea610988565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610569919061125b565b61098f565b6001905092915050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6105c5610988565b73ffffffffffffffffffffffffffffffffffffffff166105e3610644565b73ffffffffffffffffffffffffffffffffffffffff1614610639576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610630906112d8565b60405180910390fd5b6106425f610db1565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6c01431e0fae6d7217caa000000081565b60606004805461068c90611170565b80601f01602080910402602001604051908101604052809291908181526020018280546106b890611170565b80156107035780601f106106da57610100808354040283529160200191610703565b820191905f5260205f20905b8154815290600101906020018083116106e657829003601f168201915b5050505050905090565b5f5f60015f61071a610988565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156107d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cb90611366565b60405180910390fd5b6107e86107df610988565b8585840361098f565b600191505092915050565b5f6108066107ff610988565b8484610b52565b6001905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61089a610988565b73ffffffffffffffffffffffffffffffffffffffff166108b8610644565b73ffffffffffffffffffffffffffffffffffffffff161461090e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610905906112d8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361097c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610973906113f4565b60405180910390fd5b61098581610db1565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f490611482565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6290611510565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b459190611015565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb79061159e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c259061162c565b60405180910390fd5b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca8906116ba565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610d3f919061125b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610da39190611015565b60405180910390a350505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610eb682610e74565b610ec08185610e7e565b9350610ed0818560208601610e8e565b610ed981610e9c565b840191505092915050565b5f6020820190508181035f830152610efc8184610eac565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f3182610f08565b9050919050565b610f4181610f27565b8114610f4b575f5ffd5b50565b5f81359050610f5c81610f38565b92915050565b5f819050919050565b610f7481610f62565b8114610f7e575f5ffd5b50565b5f81359050610f8f81610f6b565b92915050565b5f5f60408385031215610fab57610faa610f04565b5b5f610fb885828601610f4e565b9250506020610fc985828601610f81565b9150509250929050565b5f8115159050919050565b610fe781610fd3565b82525050565b5f6020820190506110005f830184610fde565b92915050565b61100f81610f62565b82525050565b5f6020820190506110285f830184611006565b92915050565b5f5f5f6060848603121561104557611044610f04565b5b5f61105286828701610f4e565b935050602061106386828701610f4e565b925050604061107486828701610f81565b9150509250925092565b5f60ff82169050919050565b6110938161107e565b82525050565b5f6020820190506110ac5f83018461108a565b92915050565b5f602082840312156110c7576110c6610f04565b5b5f6110d484828501610f4e565b91505092915050565b6110e681610f27565b82525050565b5f6020820190506110ff5f8301846110dd565b92915050565b5f5f6040838503121561111b5761111a610f04565b5b5f61112885828601610f4e565b925050602061113985828601610f4e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061118757607f821691505b60208210810361119a57611199611143565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6111fa602883610e7e565b9150611205826111a0565b604082019050919050565b5f6020820190508181035f830152611227816111ee565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61126582610f62565b915061127083610f62565b92508282019050808211156112885761128761122e565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6112c2602083610e7e565b91506112cd8261128e565b602082019050919050565b5f6020820190508181035f8301526112ef816112b6565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611350602583610e7e565b915061135b826112f6565b604082019050919050565b5f6020820190508181035f83015261137d81611344565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6113de602683610e7e565b91506113e982611384565b604082019050919050565b5f6020820190508181035f83015261140b816113d2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61146c602483610e7e565b915061147782611412565b604082019050919050565b5f6020820190508181035f83015261149981611460565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6114fa602283610e7e565b9150611505826114a0565b604082019050919050565b5f6020820190508181035f830152611527816114ee565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611588602583610e7e565b91506115938261152e565b604082019050919050565b5f6020820190508181035f8301526115b58161157c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611616602383610e7e565b9150611621826115bc565b604082019050919050565b5f6020820190508181035f8301526116438161160a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6116a4602683610e7e565b91506116af8261164a565b604082019050919050565b5f6020820190508181035f8301526116d181611698565b905091905056fea264697066735822122028d4ac91d04ef4d8820da256b6a1888b84beb8da5f4a03a7792e44ee972df08e64736f6c634300081d0033a264697066735822122029aadf665ca1e398a6bdc71576e9ee98ed2fc3fe80e1a97efdcd96eddb60b45464736f6c634300081d0033

Deployed Bytecode Sourcemap

6757:1229:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7791:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7081:456;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7605:113;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6842:31;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7791:192;7855:7;7891:14;:21;;;;7883:5;:29;7875:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;7954:14;7969:5;7954:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7947:28;;7791:192;;;:::o;7081:456::-;7247:16;7278:4;7284:6;7292:10;7266:37;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;7247:56;;7374:14;7402:8;7374:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7518:10;7471:58;;7493:8;7471:58;;;7504:4;7510:6;7471:58;;;;;;;:::i;:::-;;;;;;;;7153:384;7081:456;;:::o;7605:113::-;7662:7;7689:14;:21;;;;7682:28;;7605:113;:::o;6842:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:126::-;1062:7;1102:42;1095:5;1091:54;1080:65;;1025:126;;;:::o;1157:96::-;1194:7;1223:24;1241:5;1223:24;:::i;:::-;1212:35;;1157:96;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:117::-;1720:1;1717;1710:12;1734:117;1843:1;1840;1833:12;1857:102;1898:6;1949:2;1945:7;1940:2;1933:5;1929:14;1925:28;1915:38;;1857:102;;;:::o;1965:180::-;2013:77;2010:1;2003:88;2110:4;2107:1;2100:15;2134:4;2131:1;2124:15;2151:281;2234:27;2256:4;2234:27;:::i;:::-;2226:6;2222:40;2364:6;2352:10;2349:22;2328:18;2316:10;2313:34;2310:62;2307:88;;;2375:18;;:::i;:::-;2307:88;2415:10;2411:2;2404:22;2194:238;2151:281;;:::o;2438:129::-;2472:6;2499:20;;:::i;:::-;2489:30;;2528:33;2556:4;2548:6;2528:33;:::i;:::-;2438:129;;;:::o;2573:308::-;2635:4;2725:18;2717:6;2714:30;2711:56;;;2747:18;;:::i;:::-;2711:56;2785:29;2807:6;2785:29;:::i;:::-;2777:37;;2869:4;2863;2859:15;2851:23;;2573:308;;;:::o;2887:148::-;2985:6;2980:3;2975;2962:30;3026:1;3017:6;3012:3;3008:16;3001:27;2887:148;;;:::o;3041:425::-;3119:5;3144:66;3160:49;3202:6;3160:49;:::i;:::-;3144:66;:::i;:::-;3135:75;;3233:6;3226:5;3219:21;3271:4;3264:5;3260:16;3309:3;3300:6;3295:3;3291:16;3288:25;3285:112;;;3316:79;;:::i;:::-;3285:112;3406:54;3453:6;3448:3;3443;3406:54;:::i;:::-;3125:341;3041:425;;;;;:::o;3486:340::-;3542:5;3591:3;3584:4;3576:6;3572:17;3568:27;3558:122;;3599:79;;:::i;:::-;3558:122;3716:6;3703:20;3741:79;3816:3;3808:6;3801:4;3793:6;3789:17;3741:79;:::i;:::-;3732:88;;3548:278;3486:340;;;;:::o;3832:834::-;3920:6;3928;3977:2;3965:9;3956:7;3952:23;3948:32;3945:119;;;3983:79;;:::i;:::-;3945:119;4131:1;4120:9;4116:17;4103:31;4161:18;4153:6;4150:30;4147:117;;;4183:79;;:::i;:::-;4147:117;4288:63;4343:7;4334:6;4323:9;4319:22;4288:63;:::i;:::-;4278:73;;4074:287;4428:2;4417:9;4413:18;4400:32;4459:18;4451:6;4448:30;4445:117;;;4481:79;;:::i;:::-;4445:117;4586:63;4641:7;4632:6;4621:9;4617:22;4586:63;:::i;:::-;4576:73;;4371:288;3832:834;;;;;:::o;4672:118::-;4759:24;4777:5;4759:24;:::i;:::-;4754:3;4747:37;4672:118;;:::o;4796:222::-;4889:4;4927:2;4916:9;4912:18;4904:26;;4940:71;5008:1;4997:9;4993:17;4984:6;4940:71;:::i;:::-;4796:222;;;;:::o;5024:169::-;5108:11;5142:6;5137:3;5130:19;5182:4;5177:3;5173:14;5158:29;;5024:169;;;;:::o;5199:::-;5339:21;5335:1;5327:6;5323:14;5316:45;5199:169;:::o;5374:366::-;5516:3;5537:67;5601:2;5596:3;5537:67;:::i;:::-;5530:74;;5613:93;5702:3;5613:93;:::i;:::-;5731:2;5726:3;5722:12;5715:19;;5374:366;;;:::o;5746:419::-;5912:4;5950:2;5939:9;5935:18;5927:26;;5999:9;5993:4;5989:20;5985:1;5974:9;5970:17;5963:47;6027:131;6153:4;6027:131;:::i;:::-;6019:139;;5746:419;;;:::o;6171:180::-;6219:77;6216:1;6209:88;6316:4;6313:1;6306:15;6340:4;6337:1;6330:15;6357:99;6409:6;6443:5;6437:12;6427:22;;6357:99;;;:::o;6462:139::-;6551:6;6546:3;6541;6535:23;6592:1;6583:6;6578:3;6574:16;6567:27;6462:139;;;:::o;6607:377::-;6695:3;6723:39;6756:5;6723:39;:::i;:::-;6778:71;6842:6;6837:3;6778:71;:::i;:::-;6771:78;;6858:65;6916:6;6911:3;6904:4;6897:5;6893:16;6858:65;:::i;:::-;6948:29;6970:6;6948:29;:::i;:::-;6943:3;6939:39;6932:46;;6699:285;6607:377;;;;:::o;6990:624::-;7179:4;7217:2;7206:9;7202:18;7194:26;;7266:9;7260:4;7256:20;7252:1;7241:9;7237:17;7230:47;7294:78;7367:4;7358:6;7294:78;:::i;:::-;7286:86;;7419:9;7413:4;7409:20;7404:2;7393:9;7389:18;7382:48;7447:78;7520:4;7511:6;7447:78;:::i;:::-;7439:86;;7535:72;7603:2;7592:9;7588:18;7579:6;7535:72;:::i;:::-;6990:624;;;;;;:::o;7620:514::-;7781:4;7819:2;7808:9;7804:18;7796:26;;7868:9;7862:4;7858:20;7854:1;7843:9;7839:17;7832:47;7896:78;7969:4;7960:6;7896:78;:::i;:::-;7888:86;;8021:9;8015:4;8011:20;8006:2;7995:9;7991:18;7984:48;8049:78;8122:4;8113:6;8049:78;:::i;:::-;8041:86;;7620:514;;;;;:::o

Swarm Source

ipfs://29aadf665ca1e398a6bdc71576e9ee98ed2fc3fe80e1a97efdcd96eddb60b454

Block Transaction Gas Used Reward
view all blocks ##produced##

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.