ETH Price: $2,715.07 (+2.27%)

Contract

0x52602b5EeE7F0c4709E99AE7677AE8d8920177A0
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer217934242025-02-07 8:25:2312 days ago1738916723IN
0x52602b5E...8920177A0
0 ETH0.00007461.34018966
Transfer217934142025-02-07 8:23:2312 days ago1738916603IN
0x52602b5E...8920177A0
0 ETH0.000044771.32603079
Transfer217932492025-02-07 7:50:1112 days ago1738914611IN
0x52602b5E...8920177A0
0 ETH0.000103661.86219596
Transfer217932432025-02-07 7:48:5912 days ago1738914539IN
0x52602b5E...8920177A0
0 ETH0.000104941.88524879
Transfer216520732025-01-18 14:48:5932 days ago1737211739IN
0x52602b5E...8920177A0
0 ETH0.0005536316.39000559
Transfer216440272025-01-17 11:50:5933 days ago1737114659IN
0x52602b5E...8920177A0
0 ETH0.000227346.73041974
Transfer216439632025-01-17 11:38:1133 days ago1737113891IN
0x52602b5E...8920177A0
0 ETH0.00036346.52683744
Transfer216439492025-01-17 11:35:2333 days ago1737113723IN
0x52602b5E...8920177A0
0 ETH0.000410267.36846008
Transfer215917802025-01-10 4:45:5940 days ago1736484359IN
0x52602b5E...8920177A0
0 ETH0.00013563.51502975
Transfer214774412024-12-25 5:36:4756 days ago1735105007IN
0x52602b5E...8920177A0
0 ETH0.00014113.65766005
Transfer214774332024-12-25 5:35:1156 days ago1735104911IN
0x52602b5E...8920177A0
0 ETH0.000213823.84037034
Transfer213423532024-12-06 8:46:3575 days ago1733474795IN
0x52602b5E...8920177A0
0 ETH0.0010686619.18919575
Transfer213336522024-12-05 3:36:4776 days ago1733369807IN
0x52602b5E...8920177A0
0 ETH0.0015087339.10759713
Transfer213328492024-12-05 0:54:5976 days ago1733360099IN
0x52602b5E...8920177A0
0 ETH0.0006365116.50419093
Transfer213226752024-12-03 14:48:2378 days ago1733237303IN
0x52602b5E...8920177A0
0 ETH0.0019474357.65225958
Transfer213209242024-12-03 8:56:3578 days ago1733216195IN
0x52602b5E...8920177A0
0 ETH0.0008718517.13588617
Transfer212798362024-11-27 14:58:1184 days ago1732719491IN
0x52602b5E...8920177A0
0 ETH0.0007207918.68354145
Transfer212637742024-11-25 9:07:1186 days ago1732525631IN
0x52602b5E...8920177A0
0 ETH0.0003406710.08174254
Transfer212328582024-11-21 1:34:4790 days ago1732152887IN
0x52602b5E...8920177A0
0 ETH0.000481068.64
Transfer210783822024-10-30 12:13:23112 days ago1730290403IN
0x52602b5E...8920177A0
0 ETH0.0005579914.46831683
Transfer210395392024-10-25 2:07:47117 days ago1729822067IN
0x52602b5E...8920177A0
0 ETH0.000239316.20525184
Transfer210352302024-10-24 11:42:35118 days ago1729770155IN
0x52602b5E...8920177A0
0 ETH0.0007753820.09851408
Transfer210338772024-10-24 7:11:11118 days ago1729753871IN
0x52602b5E...8920177A0
0 ETH0.000309839.17563235
Transfer210338662024-10-24 7:08:59118 days ago1729753739IN
0x52602b5E...8920177A0
0 ETH0.000549469.86632675
Transfer210338602024-10-24 7:07:47118 days ago1729753667IN
0x52602b5E...8920177A0
0 ETH0.0005741910.31484034
View all transactions

Advanced mode:
Parent Transaction Hash Block
From
To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PCRM

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
istanbul EvmVersion
File 1 of 1 : PCRM.sol
//SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.4;

// @openzeppelin/contracts": "^4.8.0", @openzeppelin/contracts/utils/Context.sol
abstract contract Context {

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

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

}

//@openzeppelin/contracts": "^4.8.0", @openzeppelin/contracts/access/Ownable.sol
abstract contract Ownable is Context {
    address private _owner;

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

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

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        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 EIP1132Interface {
    function lock(bytes32 _reason, uint256 _amount, uint256 _time) external returns (bool);
    function tokensLocked(address _of, bytes32 _reason) external view returns (uint256 amount);
    function tokensLockedAtTime(address _of, bytes32 _reason, uint256 _time) external view returns (uint256 amount);
    function totalBalanceOf(address _of)  external view returns (uint256 amount);
    function extendLock(bytes32 _reason, uint256 _time)  external returns (bool);
    function increaseLockAmount(bytes32 _reason, uint256 _amount) external returns (bool);
    function tokensUnlockable(address _of, bytes32 _reason) external view returns (uint256 amount);
    function getUnlockableTokens(address _of) external view returns (uint256 unlockableTokens);
    function unlock(address _of) external returns (uint256 unlockableTokens);
    event Locked(address indexed _of, uint256 indexed _reason, uint256 _amount, uint256 _validity);
    event Unlocked(address indexed _of, uint256 indexed _reason, uint256 _amount);
}

interface ITOKENLOCK {
    event    UpdateTokenBolt(address tokenHolder, uint256 amountLocked);
    function boltUnlocked(address tokenHolder) external view returns (uint256 amount);
    function boltLocked(address tokenHolder) external view returns (uint256 amount);
}

//@openzeppelin/contracts": "^4.8.0", @openzeppelin/contracts/interfaces/IERC20.sol
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);
}


//@openzeppelin/contracts": "^4.8.0", @openzeppelin/contracts/interfaces/IERC20Metadata.sol
//interface IERC20Metadata is IERC20 {
interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

//@openzeppelin/contracts": "^4.8.0", @openzeppelin/contracts/token/ERC20/ERC20.sol
contract ERC20 is Context, IERC20, IERC20Metadata {
    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 override returns (string memory) {
        return _name;
    }

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

    function decimals() public view virtual override 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");
        _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");
        _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");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _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");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

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

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

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

        _afterTokenTransfer(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);
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}
    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

contract PCRM is ERC20, Ownable, ITOKENLOCK {

    string private  constant ERROR_INSUFFICIENT_UNLOCKED = "Not enough unlocked(locked) tokens for transfer";
    string private  constant ERROR_LOCK_EXISTS           = "Token lock already exists";
    string private  constant ERROR_INSUFFICIENT_TOKENS   = "Not enough tokens to lock";
    string private  constant ERROR_NO_LOCKED_TOKENS      = "No tokens are locked, create new lock first";
    string private  constant ERROR_BAD_NEW_LOCKED_AMT    = "New amount locked(unlocked) must be greater than current";
    string private  constant ERROR_NOT_ENOUGH			   = "Not enough tokens to lock or unlock";
    string internal constant AMOUNT_ZERO                 = 'Amount can not be 0';
		
    mapping (address => uint256) public baseTokensLocked; // the number of tokens locked up by HOLDER


	event ExpireJournal(bytes32 indexed _CreditOwner, bytes32 _Verifier, address _from, uint256 amount, uint256 indexed txId);

    constructor(string memory name_, string memory symbol_, uint256 amount_, address deployer_) ERC20(name_, symbol_){
        amount_ = amount_ * (10 ** 18);
        _mint(deployer_, amount_);
    }

    function _beforeTokenTransfer(address from, address /*to*/, uint256 amount) internal  virtual override {
        require(from == address(0x0) || amount <= boltUnlocked(from), ERROR_INSUFFICIENT_UNLOCKED);
    }

	// WEB3.0 API corresponding signature transfe
    function EXTransferSign(uint256 _amount, address _to, bytes memory signature) public {

        uint8 v;
        bytes32 r;
        bytes32 s;

        bytes32 Hash = keccak256(abi.encode(this, _amount, _to));
        bytes32 hash = keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", Hash));

        require(signature.length == 65);
        assembly {
             r := mload(add(signature, 32))
             s := mload(add(signature, 64))
             v := byte(0, mload(add(signature, 96)))
        }
	    address singer = ecrecover(hash, v, r, s);
        require(msg.sender ==  singer);		
        require(_amount != 0, AMOUNT_ZERO);

        transfer(_to, _amount);
    }

	// To offset carbon credits, additional PCRMs are issued once the quantity in a PCRM mining area is exhausted.
	// However, if there is a request to incinerate PCRM in response to a request to offset carbon emissions, 
	// the corresponding quantity will be incinerated to balance the total issuance.
    function CarbonCredits(uint256 _amount, address _to, bytes memory signature) external onlyOwner {
		
        uint8 v;
        bytes32 r;
        bytes32 s;

        bytes32 Hash = keccak256(abi.encode(this, _amount, _to));
        bytes32 hash = keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", Hash));

        assembly {
             r := mload(add(signature, 32))
             s := mload(add(signature, 64))
             v := byte(0, mload(add(signature, 96)))
        }
	    address singer = ecrecover(hash, v, r, s);
        require(msg.sender ==  singer);		
	
        _mint(_to, _amount);
		
    }

	// Carbon Credit GET(PCRM) -> Carbon Credit CERs -> Carbon Credits Offset -> Carbon Credits Incineration
	//                                              (Transfer PCRM to Offset Wallet)
	// WEB3.0 API for carbon credit offset is provided separately to the carbon credit exchange or voluntary carbon market.
    function CarbonCreditsExpire(bytes32 _CreditOwner, bytes32 _Verifier, address _from, uint256 _amount, bytes memory signature) external onlyOwner {

        uint8 v;
        bytes32 r;
        bytes32 s;

        bytes32 Hash = keccak256(abi.encode(this, _amount, _from));
        bytes32 hash = keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", Hash));

        assembly {
             r := mload(add(signature, 32))
             s := mload(add(signature, 64))
             v := byte(0, mload(add(signature, 96)))
        }
	    address singer = ecrecover(hash, v, r, s);
        require(msg.sender ==  singer);		
		
        _burn(msg.sender, _amount);
		
		emit ExpireJournal(_CreditOwner, _Verifier, _from, _amount, block.number);
		
    }

    function bolt(address _to, uint256 _amount) public onlyOwner returns (bool) {
        require(boltLocked(_to) == 0,	ERROR_LOCK_EXISTS);
        require(balanceOf(_to) >= _amount, ERROR_NOT_ENOUGH);
        require(_amount > 0, ERROR_NOT_ENOUGH);

        baseTokensLocked[_to] = _amount;

        emitUpdateTokenBolt(_to);
        return true;
    }

    function clearBolt(address _to) public onlyOwner returns (uint256 unlockableTokens) {
        require(balanceOf(_to) > 0, ERROR_INSUFFICIENT_TOKENS);
        unlockableTokens = boltLocked(_to);
        baseTokensLocked[_to] = 0;

        emitUpdateTokenBolt(_to);
        return unlockableTokens;
    }

    function boltUnlocked(address _to) public virtual override view returns (uint256 amount) {
        require(balanceOf(_to) > 0, ERROR_NOT_ENOUGH);
        amount = balanceOf(_to)- boltLocked(_to);
        return amount;

    }

    function boltLocked(address _to) public virtual override view returns (uint256 amount){
        if(baseTokensLocked[_to] == 0){
            return 0;
        }
        amount = baseTokensLocked[_to];
        return amount;
    }

    function emitUpdateTokenBolt(address _to) internal {
        emit UpdateTokenBolt(_to, baseTokensLocked[_to]);

    }

    function decBolt(address _to, uint256 _amount) public virtual onlyOwner {
        require(boltLocked(_to) > 0, ERROR_NO_LOCKED_TOKENS);
        baseTokensLocked[_to] = boltLocked(_to) - _amount;
        emitUpdateTokenBolt(_to);
    }

    function incBolt(address _to, uint256 _amount) public virtual onlyOwner  {
        require(_amount > 0, ERROR_NOT_ENOUGH);
        require(boltLocked(_to) > 0, ERROR_NO_LOCKED_TOKENS);
        require(_amount <= boltUnlocked(_to), ERROR_NOT_ENOUGH);
        baseTokensLocked[_to] = (_amount + boltLocked(_to));
        emitUpdateTokenBolt(_to);
    }

}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"address","name":"deployer_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_CreditOwner","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"_Verifier","type":"bytes32"},{"indexed":false,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"txId","type":"uint256"}],"name":"ExpireJournal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenHolder","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountLocked","type":"uint256"}],"name":"UpdateTokenBolt","type":"event"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"CarbonCredits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_CreditOwner","type":"bytes32"},{"internalType":"bytes32","name":"_Verifier","type":"bytes32"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"CarbonCreditsExpire","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"EXTransferSign","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"baseTokensLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"bolt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"boltLocked","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"boltUnlocked","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"clearBolt","outputs":[{"internalType":"uint256","name":"unlockableTokens","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"decBolt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"incBolt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50604051620039ed380380620039ed83398181016040528101906200003791906200068f565b83838160039080519060200190620000519291906200053f565b5080600490805190602001906200006a9291906200053f565b5050506200008d62000081620000c160201b60201c565b620000c960201b60201c565b670de0b6b3a764000082620000a39190620008e1565b9150620000b781836200018f60201b60201c565b5050505062000b58565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000202576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001f990620007ca565b60405180910390fd5b6200021660008383620002fd60201b60201c565b80600260008282546200022a919062000884565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002dd9190620007ec565b60405180910390a3620002f960008383620003ad60201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806200034957506200034583620003b260201b60201c565b8111155b6040518060600160405280602f8152602001620039be602f913990620003a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200039e9190620007a6565b60405180910390fd5b50505050565b505050565b600080620003c6836200045b60201b60201c565b116040518060600160405280602381526020016200399b602391399062000425576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200041c9190620007a6565b60405180910390fd5b506200043782620004a360201b60201c565b62000448836200045b60201b60201c565b62000454919062000942565b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415620004f757600090506200053a565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b8280546200054d90620009f1565b90600052602060002090601f016020900481019282620005715760008555620005bd565b82601f106200058c57805160ff1916838001178555620005bd565b82800160010185558215620005bd579182015b82811115620005bc5782518255916020019190600101906200059f565b5b509050620005cc9190620005d0565b5090565b5b80821115620005eb576000816000905550600101620005d1565b5090565b600062000606620006008462000832565b62000809565b9050828152602081018484840111156200061f57600080fd5b6200062c848285620009bb565b509392505050565b600081519050620006458162000b24565b92915050565b600082601f8301126200065d57600080fd5b81516200066f848260208601620005ef565b91505092915050565b600081519050620006898162000b3e565b92915050565b60008060008060808587031215620006a657600080fd5b600085015167ffffffffffffffff811115620006c157600080fd5b620006cf878288016200064b565b945050602085015167ffffffffffffffff811115620006ed57600080fd5b620006fb878288016200064b565b93505060406200070e8782880162000678565b9250506060620007218782880162000634565b91505092959194509250565b60006200073a8262000868565b62000746818562000873565b935062000758818560208601620009bb565b620007638162000aea565b840191505092915050565b60006200077d601f8362000873565b91506200078a8262000afb565b602082019050919050565b620007a081620009b1565b82525050565b60006020820190508181036000830152620007c281846200072d565b905092915050565b60006020820190508181036000830152620007e5816200076e565b9050919050565b600060208201905062000803600083018462000795565b92915050565b60006200081562000828565b905062000823828262000a27565b919050565b6000604051905090565b600067ffffffffffffffff82111562000850576200084f62000abb565b5b6200085b8262000aea565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b60006200089182620009b1565b91506200089e83620009b1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620008d657620008d562000a5d565b5b828201905092915050565b6000620008ee82620009b1565b9150620008fb83620009b1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000937576200093662000a5d565b5b828202905092915050565b60006200094f82620009b1565b91506200095c83620009b1565b92508282101562000972576200097162000a5d565b5b828203905092915050565b60006200098a8262000991565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015620009db578082015181840152602081019050620009be565b83811115620009eb576000848401525b50505050565b6000600282049050600182168062000a0a57607f821691505b6020821081141562000a215762000a2062000a8c565b5b50919050565b62000a328262000aea565b810181811067ffffffffffffffff8211171562000a545762000a5362000abb565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b62000b2f816200097d565b811462000b3b57600080fd5b50565b62000b4981620009b1565b811462000b5557600080fd5b50565b612e338062000b686000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806372d3629b116100c3578063a9059cbb1161007c578063a9059cbb146103ed578063b18839731461041d578063bf66444014610439578063d8a67fd514610469578063dd62ed3e14610499578063f2fde38b146104c957610158565b806372d3629b14610319578063785d2c0b14610349578063796dcc7f146103655780638da5cb5b1461038157806395d89b411461039f578063a457c2d7146103bd57610158565b80633a3f499f116101155780633a3f499f14610247578063484659c914610263578063650ad9001461027f5780636d89a466146102af57806370a08231146102df578063715018a61461030f57610158565b806306fdde031461015d578063095ea7b31461017b57806318160ddd146101ab57806323b872dd146101c9578063313ce567146101f95780633950935114610217575b600080fd5b6101656104e5565b60405161017291906124fb565b60405180910390f35b61019560048036038101906101909190612020565b610577565b6040516101a2919061242d565b60405180910390f35b6101b3610595565b6040516101c0919061269d565b60405180910390f35b6101e360048036038101906101de9190611fd1565b61059f565b6040516101f0919061242d565b60405180910390f35b6102016106a0565b60405161020e91906126b8565b60405180910390f35b610231600480360381019061022c9190612020565b6106a9565b60405161023e919061242d565b60405180910390f35b610261600480360381019061025c919061205c565b610755565b005b61027d600480360381019061027891906120eb565b6108b2565b005b61029960048036038101906102949190611f6c565b610a54565b6040516102a6919061269d565b60405180910390f35b6102c960048036038101906102c49190611f6c565b610b40565b6040516102d6919061269d565b60405180910390f35b6102f960048036038101906102f49190611f6c565b610bcb565b604051610306919061269d565b60405180910390f35b610317610c13565b005b610333600480360381019061032e9190611f6c565b610c27565b604051610340919061269d565b60405180910390f35b610363600480360381019061035e91906120eb565b610cc1565b005b61037f600480360381019061037a9190612020565b610ddf565b005b610389610f78565b60405161039691906123e9565b60405180910390f35b6103a7610fa2565b6040516103b491906124fb565b60405180910390f35b6103d760048036038101906103d29190612020565b611034565b6040516103e4919061242d565b60405180910390f35b61040760048036038101906104029190612020565b611128565b604051610414919061242d565b60405180910390f35b61043760048036038101906104329190612020565b611146565b005b610453600480360381019061044e9190612020565b611219565b604051610460919061242d565b60405180910390f35b610483600480360381019061047e9190611f6c565b6113c4565b604051610490919061269d565b60405180910390f35b6104b360048036038101906104ae9190611f95565b6113dc565b6040516104c0919061269d565b60405180910390f35b6104e360048036038101906104de9190611f6c565b611463565b005b6060600380546104f49061289f565b80601f01602080910402602001604051908101604052809291908181526020018280546105209061289f565b801561056d5780601f106105425761010080835404028352916020019161056d565b820191906000526020600020905b81548152906001019060200180831161055057829003601f168201915b5050505050905090565b600061058b6105846114e7565b84846114ef565b6001905092915050565b6000600254905090565b60006105ac8484846116ba565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f76114e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066e906125bd565b60405180910390fd5b610694856106836114e7565b858461068f91906127a6565b6114ef565b60019150509392505050565b60006012905090565b600061074b6106b66114e7565b8484600160006106c46114e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107469190612750565b6114ef565b6001905092915050565b61075d611939565b600080600080308688604051602001610778939291906124c4565b6040516020818303038152906040528051906020012090506000816040516020016107a391906123c3565b6040516020818303038152906040528051906020012090506020860151935060408601519250606086015160001a94506000600182878787604051600081526020016040526040516107f8949392919061247f565b6020604051602081039080840390855afa15801561081a573d6000803e3d6000fd5b5050506020604051035190508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461085e57600080fd5b61086833896119b7565b438b7f4a03d2ef2e88bed040f8f005c5fe23396a0a57dfb15bcb4030bc64cae4b1d9af8c8c8c60405161089d93929190612448565b60405180910390a35050505050505050505050565b6000806000803087876040516020016108cd939291906124c4565b6040516020818303038152906040528051906020012090506000816040516020016108f891906123c3565b604051602081830303815290604052805190602001209050604186511461091e57600080fd5b6020860151935060408601519250606086015160001a945060006001828787876040516000815260200160405260405161095b949392919061247f565b6020604051602081039080840390855afa15801561097d573d6000803e3d6000fd5b5050506020604051035190508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109c157600080fd5b60008914156040518060400160405280601381526020017f416d6f756e742063616e206e6f7420626520300000000000000000000000000081525090610a3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3491906124fb565b60405180910390fd5b50610a48888a611128565b50505050505050505050565b6000610a5e611939565b6000610a6983610bcb565b116040518060400160405280601981526020017f4e6f7420656e6f75676820746f6b656e7320746f206c6f636b0000000000000081525090610ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad891906124fb565b60405180910390fd5b50610aeb82610c27565b90506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b3b82611b85565b919050565b600080610b4c83610bcb565b11604051806060016040528060238152602001612d816023913990610ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9e91906124fb565b60405180910390fd5b50610bb182610c27565b610bba83610bcb565b610bc491906127a6565b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c1b611939565b610c256000611c00565b565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415610c795760009050610cbc565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b610cc9611939565b600080600080308787604051602001610ce4939291906124c4565b604051602081830303815290604052805190602001209050600081604051602001610d0f91906123c3565b6040516020818303038152906040528051906020012090506020860151935060408601519250606086015160001a9450600060018287878760405160008152602001604052604051610d64949392919061247f565b6020604051602081039080840390855afa158015610d86573d6000803e3d6000fd5b5050506020604051035190508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dca57600080fd5b610dd4888a611cc6565b505050505050505050565b610de7611939565b60008111604051806060016040528060238152602001612d816023913990610e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3c91906124fb565b60405180910390fd5b506000610e5183610c27565b116040518060600160405280602b8152602001612da4602b913990610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea391906124fb565b60405180910390fd5b50610eb682610b40565b811115604051806060016040528060238152602001612d816023913990610f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0a91906124fb565b60405180910390fd5b50610f1d82610c27565b81610f289190612750565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f7482611b85565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610fb19061289f565b80601f0160208091040260200160405190810160405280929190818152602001828054610fdd9061289f565b801561102a5780601f10610fff5761010080835404028352916020019161102a565b820191906000526020600020905b81548152906001019060200180831161100d57829003601f168201915b5050505050905090565b600080600160006110436114e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f79061265d565b60405180910390fd5b61111d61110b6114e7565b85858461111891906127a6565b6114ef565b600191505092915050565b600061113c6111356114e7565b84846116ba565b6001905092915050565b61114e611939565b600061115983610c27565b116040518060600160405280602b8152602001612da4602b9139906111b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ab91906124fb565b60405180910390fd5b50806111bf83610c27565b6111c991906127a6565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061121582611b85565b5050565b6000611223611939565b600061122e84610c27565b146040518060400160405280601981526020017f546f6b656e206c6f636b20616c72656164792065786973747300000000000000815250906112a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129d91906124fb565b60405180910390fd5b50816112b184610bcb565b1015604051806060016040528060238152602001612d81602391399061130d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130491906124fb565b60405180910390fd5b5060008211604051806060016040528060238152602001612d81602391399061136c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136391906124fb565b60405180910390fd5b5081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113ba83611b85565b6001905092915050565b60066020528060005260406000206000915090505481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61146b611939565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d29061255d565b60405180910390fd5b6114e481611c00565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561155f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115569061263d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c69061257d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116ad919061269d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561172a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117219061261d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561179a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117919061251d565b60405180910390fd5b6117a5838383611e1d565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561182b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118229061259d565b60405180910390fd5b818161183791906127a6565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118c79190612750565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161192b919061269d565b60405180910390a350505050565b6119416114e7565b73ffffffffffffffffffffffffffffffffffffffff1661195f610f78565b73ffffffffffffffffffffffffffffffffffffffff16146119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ac906125dd565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1e906125fd565b60405180910390fd5b611a3382600083611e1d565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab09061253d565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b6c919061269d565b60405180910390a3611b8083600084611ec0565b505050565b7f3ffc19d3d00641002f93c6c8e6f6a1c61c978641bb77854449c2cb6cc2cba27981600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051611bf5929190612404565b60405180910390a150565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2d9061267d565b60405180910390fd5b611d4260008383611e1d565b8060026000828254611d549190612750565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e05919061269d565b60405180910390a3611e1960008383611ec0565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611e605750611e5c83610b40565b8111155b6040518060600160405280602f8152602001612dcf602f913990611eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb191906124fb565b60405180910390fd5b50505050565b505050565b6000611ed8611ed3846126f8565b6126d3565b905082815260208101848484011115611ef057600080fd5b611efb84828561285d565b509392505050565b600081359050611f1281612d3b565b92915050565b600081359050611f2781612d52565b92915050565b600082601f830112611f3e57600080fd5b8135611f4e848260208601611ec5565b91505092915050565b600081359050611f6681612d69565b92915050565b600060208284031215611f7e57600080fd5b6000611f8c84828501611f03565b91505092915050565b60008060408385031215611fa857600080fd5b6000611fb685828601611f03565b9250506020611fc785828601611f03565b9150509250929050565b600080600060608486031215611fe657600080fd5b6000611ff486828701611f03565b935050602061200586828701611f03565b925050604061201686828701611f57565b9150509250925092565b6000806040838503121561203357600080fd5b600061204185828601611f03565b925050602061205285828601611f57565b9150509250929050565b600080600080600060a0868803121561207457600080fd5b600061208288828901611f18565b955050602061209388828901611f18565b94505060406120a488828901611f03565b93505060606120b588828901611f57565b925050608086013567ffffffffffffffff8111156120d257600080fd5b6120de88828901611f2d565b9150509295509295909350565b60008060006060848603121561210057600080fd5b600061210e86828701611f57565b935050602061211f86828701611f03565b925050604084013567ffffffffffffffff81111561213c57600080fd5b61214886828701611f2d565b9150509250925092565b61215b816127da565b82525050565b61216a816127ec565b82525050565b612179816127f8565b82525050565b61219061218b826127f8565b612902565b82525050565b61219f81612839565b82525050565b60006121b082612729565b6121ba8185612734565b93506121ca81856020860161286c565b6121d381612999565b840191505092915050565b60006121eb602383612734565b91506121f6826129aa565b604082019050919050565b600061220e602283612734565b9150612219826129f9565b604082019050919050565b6000612231601c83612745565b915061223c82612a48565b601c82019050919050565b6000612254602683612734565b915061225f82612a71565b604082019050919050565b6000612277602283612734565b915061228282612ac0565b604082019050919050565b600061229a602683612734565b91506122a582612b0f565b604082019050919050565b60006122bd602883612734565b91506122c882612b5e565b604082019050919050565b60006122e0602083612734565b91506122eb82612bad565b602082019050919050565b6000612303602183612734565b915061230e82612bd6565b604082019050919050565b6000612326602583612734565b915061233182612c25565b604082019050919050565b6000612349602483612734565b915061235482612c74565b604082019050919050565b600061236c602583612734565b915061237782612cc3565b604082019050919050565b600061238f601f83612734565b915061239a82612d12565b602082019050919050565b6123ae81612822565b82525050565b6123bd8161282c565b82525050565b60006123ce82612224565b91506123da828461217f565b60208201915081905092915050565b60006020820190506123fe6000830184612152565b92915050565b60006040820190506124196000830185612152565b61242660208301846123a5565b9392505050565b60006020820190506124426000830184612161565b92915050565b600060608201905061245d6000830186612170565b61246a6020830185612152565b61247760408301846123a5565b949350505050565b60006080820190506124946000830187612170565b6124a160208301866123b4565b6124ae6040830185612170565b6124bb6060830184612170565b95945050505050565b60006060820190506124d96000830186612196565b6124e660208301856123a5565b6124f36040830184612152565b949350505050565b6000602082019050818103600083015261251581846121a5565b905092915050565b60006020820190508181036000830152612536816121de565b9050919050565b6000602082019050818103600083015261255681612201565b9050919050565b6000602082019050818103600083015261257681612247565b9050919050565b600060208201905081810360008301526125968161226a565b9050919050565b600060208201905081810360008301526125b68161228d565b9050919050565b600060208201905081810360008301526125d6816122b0565b9050919050565b600060208201905081810360008301526125f6816122d3565b9050919050565b60006020820190508181036000830152612616816122f6565b9050919050565b6000602082019050818103600083015261263681612319565b9050919050565b600060208201905081810360008301526126568161233c565b9050919050565b600060208201905081810360008301526126768161235f565b9050919050565b6000602082019050818103600083015261269681612382565b9050919050565b60006020820190506126b260008301846123a5565b92915050565b60006020820190506126cd60008301846123b4565b92915050565b60006126dd6126ee565b90506126e982826128d1565b919050565b6000604051905090565b600067ffffffffffffffff8211156127135761271261296a565b5b61271c82612999565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600061275b82612822565b915061276683612822565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561279b5761279a61290c565b5b828201905092915050565b60006127b182612822565b91506127bc83612822565b9250828210156127cf576127ce61290c565b5b828203905092915050565b60006127e582612802565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006128448261284b565b9050919050565b600061285682612802565b9050919050565b82818337600083830152505050565b60005b8381101561288a57808201518184015260208101905061286f565b83811115612899576000848401525b50505050565b600060028204905060018216806128b757607f821691505b602082108114156128cb576128ca61293b565b5b50919050565b6128da82612999565b810181811067ffffffffffffffff821117156128f9576128f861296a565b5b80604052505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b612d44816127da565b8114612d4f57600080fd5b50565b612d5b816127f8565b8114612d6657600080fd5b50565b612d7281612822565b8114612d7d57600080fd5b5056fe4e6f7420656e6f75676820746f6b656e7320746f206c6f636b206f7220756e6c6f636b4e6f20746f6b656e7320617265206c6f636b65642c20637265617465206e6577206c6f636b2066697273744e6f7420656e6f75676820756e6c6f636b6564286c6f636b65642920746f6b656e7320666f72207472616e73666572a264697066735822122030affad7965c2fb4ab44776d6c390a43e2933f389fe31ac0f6ef1b5e9add493664736f6c634300080400334e6f7420656e6f75676820746f6b656e7320746f206c6f636b206f7220756e6c6f636b4e6f7420656e6f75676820756e6c6f636b6564286c6f636b65642920746f6b656e7320666f72207472616e73666572000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000d09dc3000000000000000000000000009a7d040530e955389bc26eafe02694be3d2b346c000000000000000000000000000000000000000000000000000000000000000e436c696d61746520416374696f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045043524d00000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101585760003560e01c806372d3629b116100c3578063a9059cbb1161007c578063a9059cbb146103ed578063b18839731461041d578063bf66444014610439578063d8a67fd514610469578063dd62ed3e14610499578063f2fde38b146104c957610158565b806372d3629b14610319578063785d2c0b14610349578063796dcc7f146103655780638da5cb5b1461038157806395d89b411461039f578063a457c2d7146103bd57610158565b80633a3f499f116101155780633a3f499f14610247578063484659c914610263578063650ad9001461027f5780636d89a466146102af57806370a08231146102df578063715018a61461030f57610158565b806306fdde031461015d578063095ea7b31461017b57806318160ddd146101ab57806323b872dd146101c9578063313ce567146101f95780633950935114610217575b600080fd5b6101656104e5565b60405161017291906124fb565b60405180910390f35b61019560048036038101906101909190612020565b610577565b6040516101a2919061242d565b60405180910390f35b6101b3610595565b6040516101c0919061269d565b60405180910390f35b6101e360048036038101906101de9190611fd1565b61059f565b6040516101f0919061242d565b60405180910390f35b6102016106a0565b60405161020e91906126b8565b60405180910390f35b610231600480360381019061022c9190612020565b6106a9565b60405161023e919061242d565b60405180910390f35b610261600480360381019061025c919061205c565b610755565b005b61027d600480360381019061027891906120eb565b6108b2565b005b61029960048036038101906102949190611f6c565b610a54565b6040516102a6919061269d565b60405180910390f35b6102c960048036038101906102c49190611f6c565b610b40565b6040516102d6919061269d565b60405180910390f35b6102f960048036038101906102f49190611f6c565b610bcb565b604051610306919061269d565b60405180910390f35b610317610c13565b005b610333600480360381019061032e9190611f6c565b610c27565b604051610340919061269d565b60405180910390f35b610363600480360381019061035e91906120eb565b610cc1565b005b61037f600480360381019061037a9190612020565b610ddf565b005b610389610f78565b60405161039691906123e9565b60405180910390f35b6103a7610fa2565b6040516103b491906124fb565b60405180910390f35b6103d760048036038101906103d29190612020565b611034565b6040516103e4919061242d565b60405180910390f35b61040760048036038101906104029190612020565b611128565b604051610414919061242d565b60405180910390f35b61043760048036038101906104329190612020565b611146565b005b610453600480360381019061044e9190612020565b611219565b604051610460919061242d565b60405180910390f35b610483600480360381019061047e9190611f6c565b6113c4565b604051610490919061269d565b60405180910390f35b6104b360048036038101906104ae9190611f95565b6113dc565b6040516104c0919061269d565b60405180910390f35b6104e360048036038101906104de9190611f6c565b611463565b005b6060600380546104f49061289f565b80601f01602080910402602001604051908101604052809291908181526020018280546105209061289f565b801561056d5780601f106105425761010080835404028352916020019161056d565b820191906000526020600020905b81548152906001019060200180831161055057829003601f168201915b5050505050905090565b600061058b6105846114e7565b84846114ef565b6001905092915050565b6000600254905090565b60006105ac8484846116ba565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f76114e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066e906125bd565b60405180910390fd5b610694856106836114e7565b858461068f91906127a6565b6114ef565b60019150509392505050565b60006012905090565b600061074b6106b66114e7565b8484600160006106c46114e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107469190612750565b6114ef565b6001905092915050565b61075d611939565b600080600080308688604051602001610778939291906124c4565b6040516020818303038152906040528051906020012090506000816040516020016107a391906123c3565b6040516020818303038152906040528051906020012090506020860151935060408601519250606086015160001a94506000600182878787604051600081526020016040526040516107f8949392919061247f565b6020604051602081039080840390855afa15801561081a573d6000803e3d6000fd5b5050506020604051035190508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461085e57600080fd5b61086833896119b7565b438b7f4a03d2ef2e88bed040f8f005c5fe23396a0a57dfb15bcb4030bc64cae4b1d9af8c8c8c60405161089d93929190612448565b60405180910390a35050505050505050505050565b6000806000803087876040516020016108cd939291906124c4565b6040516020818303038152906040528051906020012090506000816040516020016108f891906123c3565b604051602081830303815290604052805190602001209050604186511461091e57600080fd5b6020860151935060408601519250606086015160001a945060006001828787876040516000815260200160405260405161095b949392919061247f565b6020604051602081039080840390855afa15801561097d573d6000803e3d6000fd5b5050506020604051035190508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109c157600080fd5b60008914156040518060400160405280601381526020017f416d6f756e742063616e206e6f7420626520300000000000000000000000000081525090610a3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3491906124fb565b60405180910390fd5b50610a48888a611128565b50505050505050505050565b6000610a5e611939565b6000610a6983610bcb565b116040518060400160405280601981526020017f4e6f7420656e6f75676820746f6b656e7320746f206c6f636b0000000000000081525090610ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad891906124fb565b60405180910390fd5b50610aeb82610c27565b90506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b3b82611b85565b919050565b600080610b4c83610bcb565b11604051806060016040528060238152602001612d816023913990610ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9e91906124fb565b60405180910390fd5b50610bb182610c27565b610bba83610bcb565b610bc491906127a6565b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c1b611939565b610c256000611c00565b565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415610c795760009050610cbc565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b610cc9611939565b600080600080308787604051602001610ce4939291906124c4565b604051602081830303815290604052805190602001209050600081604051602001610d0f91906123c3565b6040516020818303038152906040528051906020012090506020860151935060408601519250606086015160001a9450600060018287878760405160008152602001604052604051610d64949392919061247f565b6020604051602081039080840390855afa158015610d86573d6000803e3d6000fd5b5050506020604051035190508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dca57600080fd5b610dd4888a611cc6565b505050505050505050565b610de7611939565b60008111604051806060016040528060238152602001612d816023913990610e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3c91906124fb565b60405180910390fd5b506000610e5183610c27565b116040518060600160405280602b8152602001612da4602b913990610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea391906124fb565b60405180910390fd5b50610eb682610b40565b811115604051806060016040528060238152602001612d816023913990610f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0a91906124fb565b60405180910390fd5b50610f1d82610c27565b81610f289190612750565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f7482611b85565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610fb19061289f565b80601f0160208091040260200160405190810160405280929190818152602001828054610fdd9061289f565b801561102a5780601f10610fff5761010080835404028352916020019161102a565b820191906000526020600020905b81548152906001019060200180831161100d57829003601f168201915b5050505050905090565b600080600160006110436114e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f79061265d565b60405180910390fd5b61111d61110b6114e7565b85858461111891906127a6565b6114ef565b600191505092915050565b600061113c6111356114e7565b84846116ba565b6001905092915050565b61114e611939565b600061115983610c27565b116040518060600160405280602b8152602001612da4602b9139906111b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ab91906124fb565b60405180910390fd5b50806111bf83610c27565b6111c991906127a6565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061121582611b85565b5050565b6000611223611939565b600061122e84610c27565b146040518060400160405280601981526020017f546f6b656e206c6f636b20616c72656164792065786973747300000000000000815250906112a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129d91906124fb565b60405180910390fd5b50816112b184610bcb565b1015604051806060016040528060238152602001612d81602391399061130d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130491906124fb565b60405180910390fd5b5060008211604051806060016040528060238152602001612d81602391399061136c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136391906124fb565b60405180910390fd5b5081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113ba83611b85565b6001905092915050565b60066020528060005260406000206000915090505481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61146b611939565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d29061255d565b60405180910390fd5b6114e481611c00565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561155f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115569061263d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c69061257d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116ad919061269d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561172a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117219061261d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561179a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117919061251d565b60405180910390fd5b6117a5838383611e1d565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561182b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118229061259d565b60405180910390fd5b818161183791906127a6565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118c79190612750565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161192b919061269d565b60405180910390a350505050565b6119416114e7565b73ffffffffffffffffffffffffffffffffffffffff1661195f610f78565b73ffffffffffffffffffffffffffffffffffffffff16146119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ac906125dd565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1e906125fd565b60405180910390fd5b611a3382600083611e1d565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab09061253d565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b6c919061269d565b60405180910390a3611b8083600084611ec0565b505050565b7f3ffc19d3d00641002f93c6c8e6f6a1c61c978641bb77854449c2cb6cc2cba27981600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051611bf5929190612404565b60405180910390a150565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2d9061267d565b60405180910390fd5b611d4260008383611e1d565b8060026000828254611d549190612750565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e05919061269d565b60405180910390a3611e1960008383611ec0565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611e605750611e5c83610b40565b8111155b6040518060600160405280602f8152602001612dcf602f913990611eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb191906124fb565b60405180910390fd5b50505050565b505050565b6000611ed8611ed3846126f8565b6126d3565b905082815260208101848484011115611ef057600080fd5b611efb84828561285d565b509392505050565b600081359050611f1281612d3b565b92915050565b600081359050611f2781612d52565b92915050565b600082601f830112611f3e57600080fd5b8135611f4e848260208601611ec5565b91505092915050565b600081359050611f6681612d69565b92915050565b600060208284031215611f7e57600080fd5b6000611f8c84828501611f03565b91505092915050565b60008060408385031215611fa857600080fd5b6000611fb685828601611f03565b9250506020611fc785828601611f03565b9150509250929050565b600080600060608486031215611fe657600080fd5b6000611ff486828701611f03565b935050602061200586828701611f03565b925050604061201686828701611f57565b9150509250925092565b6000806040838503121561203357600080fd5b600061204185828601611f03565b925050602061205285828601611f57565b9150509250929050565b600080600080600060a0868803121561207457600080fd5b600061208288828901611f18565b955050602061209388828901611f18565b94505060406120a488828901611f03565b93505060606120b588828901611f57565b925050608086013567ffffffffffffffff8111156120d257600080fd5b6120de88828901611f2d565b9150509295509295909350565b60008060006060848603121561210057600080fd5b600061210e86828701611f57565b935050602061211f86828701611f03565b925050604084013567ffffffffffffffff81111561213c57600080fd5b61214886828701611f2d565b9150509250925092565b61215b816127da565b82525050565b61216a816127ec565b82525050565b612179816127f8565b82525050565b61219061218b826127f8565b612902565b82525050565b61219f81612839565b82525050565b60006121b082612729565b6121ba8185612734565b93506121ca81856020860161286c565b6121d381612999565b840191505092915050565b60006121eb602383612734565b91506121f6826129aa565b604082019050919050565b600061220e602283612734565b9150612219826129f9565b604082019050919050565b6000612231601c83612745565b915061223c82612a48565b601c82019050919050565b6000612254602683612734565b915061225f82612a71565b604082019050919050565b6000612277602283612734565b915061228282612ac0565b604082019050919050565b600061229a602683612734565b91506122a582612b0f565b604082019050919050565b60006122bd602883612734565b91506122c882612b5e565b604082019050919050565b60006122e0602083612734565b91506122eb82612bad565b602082019050919050565b6000612303602183612734565b915061230e82612bd6565b604082019050919050565b6000612326602583612734565b915061233182612c25565b604082019050919050565b6000612349602483612734565b915061235482612c74565b604082019050919050565b600061236c602583612734565b915061237782612cc3565b604082019050919050565b600061238f601f83612734565b915061239a82612d12565b602082019050919050565b6123ae81612822565b82525050565b6123bd8161282c565b82525050565b60006123ce82612224565b91506123da828461217f565b60208201915081905092915050565b60006020820190506123fe6000830184612152565b92915050565b60006040820190506124196000830185612152565b61242660208301846123a5565b9392505050565b60006020820190506124426000830184612161565b92915050565b600060608201905061245d6000830186612170565b61246a6020830185612152565b61247760408301846123a5565b949350505050565b60006080820190506124946000830187612170565b6124a160208301866123b4565b6124ae6040830185612170565b6124bb6060830184612170565b95945050505050565b60006060820190506124d96000830186612196565b6124e660208301856123a5565b6124f36040830184612152565b949350505050565b6000602082019050818103600083015261251581846121a5565b905092915050565b60006020820190508181036000830152612536816121de565b9050919050565b6000602082019050818103600083015261255681612201565b9050919050565b6000602082019050818103600083015261257681612247565b9050919050565b600060208201905081810360008301526125968161226a565b9050919050565b600060208201905081810360008301526125b68161228d565b9050919050565b600060208201905081810360008301526125d6816122b0565b9050919050565b600060208201905081810360008301526125f6816122d3565b9050919050565b60006020820190508181036000830152612616816122f6565b9050919050565b6000602082019050818103600083015261263681612319565b9050919050565b600060208201905081810360008301526126568161233c565b9050919050565b600060208201905081810360008301526126768161235f565b9050919050565b6000602082019050818103600083015261269681612382565b9050919050565b60006020820190506126b260008301846123a5565b92915050565b60006020820190506126cd60008301846123b4565b92915050565b60006126dd6126ee565b90506126e982826128d1565b919050565b6000604051905090565b600067ffffffffffffffff8211156127135761271261296a565b5b61271c82612999565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600061275b82612822565b915061276683612822565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561279b5761279a61290c565b5b828201905092915050565b60006127b182612822565b91506127bc83612822565b9250828210156127cf576127ce61290c565b5b828203905092915050565b60006127e582612802565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006128448261284b565b9050919050565b600061285682612802565b9050919050565b82818337600083830152505050565b60005b8381101561288a57808201518184015260208101905061286f565b83811115612899576000848401525b50505050565b600060028204905060018216806128b757607f821691505b602082108114156128cb576128ca61293b565b5b50919050565b6128da82612999565b810181811067ffffffffffffffff821117156128f9576128f861296a565b5b80604052505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b612d44816127da565b8114612d4f57600080fd5b50565b612d5b816127f8565b8114612d6657600080fd5b50565b612d7281612822565b8114612d7d57600080fd5b5056fe4e6f7420656e6f75676820746f6b656e7320746f206c6f636b206f7220756e6c6f636b4e6f20746f6b656e7320617265206c6f636b65642c20637265617465206e6577206c6f636b2066697273744e6f7420656e6f75676820756e6c6f636b6564286c6f636b65642920746f6b656e7320666f72207472616e73666572a264697066735822122030affad7965c2fb4ab44776d6c390a43e2933f389fe31ac0f6ef1b5e9add493664736f6c63430008040033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000d09dc3000000000000000000000000009a7d040530e955389bc26eafe02694be3d2b346c000000000000000000000000000000000000000000000000000000000000000e436c696d61746520416374696f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045043524d00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Climate Action
Arg [1] : symbol_ (string): PCRM
Arg [2] : amount_ (uint256): 3500000000
Arg [3] : deployer_ (address): 0x9a7D040530E955389Bc26eAFE02694be3d2b346C

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 00000000000000000000000000000000000000000000000000000000d09dc300
Arg [3] : 0000000000000000000000009a7d040530e955389bc26eafe02694be3d2b346c
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000e
Arg [5] : 436c696d61746520416374696f6e000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 5043524d00000000000000000000000000000000000000000000000000000000


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.