ETH Price: $1,946.79 (-0.82%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Approve245469372026-02-27 8:01:472 days ago1772179307IN
TeFood: TONE Token
0 ETH0.000005330.11048893
Approve245441932026-02-26 22:50:473 days ago1772146247IN
TeFood: TONE Token
0 ETH0.000098722.04419999
Approve245281432026-02-24 17:05:355 days ago1771952735IN
TeFood: TONE Token
0 ETH0.000109872.27503957
Approve245145242026-02-22 19:32:237 days ago1771788743IN
TeFood: TONE Token
0 ETH0.000098982.04083146
Transfer245145002026-02-22 19:27:357 days ago1771788455IN
TeFood: TONE Token
0 ETH0.000065792.04052647
Approve245107262026-02-22 6:50:117 days ago1771743011IN
TeFood: TONE Token
0 ETH0.000097942.02849065
Approve244693962026-02-16 12:31:2313 days ago1771245083IN
TeFood: TONE Token
0 ETH0.000004980.10320916
Approve244431662026-02-12 20:45:3517 days ago1770929135IN
TeFood: TONE Token
0 ETH0.00000210.067
Approve244377832026-02-12 2:42:4717 days ago1770864167IN
TeFood: TONE Token
0 ETH0.000003250.067
Transfer244243282026-02-10 5:36:5919 days ago1770701819IN
TeFood: TONE Token
0 ETH0.000001840.03729725
Transfer244192632026-02-09 12:39:3520 days ago1770640775IN
TeFood: TONE Token
0 ETH0.00000270.05490568
Approve244166822026-02-09 3:59:5920 days ago1770609599IN
TeFood: TONE Token
0 ETH0.000003390.07
Approve244082832026-02-07 23:39:4722 days ago1770507587IN
TeFood: TONE Token
0 ETH0.000005230.18440737
Approve244082732026-02-07 23:37:3522 days ago1770507455IN
TeFood: TONE Token
0 ETH0.000008620.17864076
Approve244030882026-02-07 6:14:4722 days ago1770444887IN
TeFood: TONE Token
0 ETH0.000056361.16253764
Transfer243990672026-02-06 16:45:5923 days ago1770396359IN
TeFood: TONE Token
0 ETH0.000045471.22722928
Transfer243989782026-02-06 16:28:1123 days ago1770395291IN
TeFood: TONE Token
0 ETH0.00005931.09501908
Approve243963902026-02-06 7:48:1123 days ago1770364091IN
TeFood: TONE Token
0 ETH0.000059942.28143014
Approve243776182026-02-03 16:47:5926 days ago1770137279IN
TeFood: TONE Token
0 ETH0.000051121.05287598
Approve243721302026-02-02 22:23:1127 days ago1770070991IN
TeFood: TONE Token
0 ETH0.000103882.15159284
Approve243496372026-01-30 19:00:2330 days ago1769799623IN
TeFood: TONE Token
0 ETH0.00011382.3470135
Transfer243495882026-01-30 18:50:3530 days ago1769799035IN
TeFood: TONE Token
0 ETH0.000085831.73918622
Approve243198712026-01-26 15:22:5934 days ago1769440979IN
TeFood: TONE Token
0 ETH0.00002280.86809019
Transfer242974012026-01-23 12:11:2337 days ago1769170283IN
TeFood: TONE Token
0 ETH0.000003340.06768848
Approve242727932026-01-20 1:46:3540 days ago1768873595IN
TeFood: TONE Token
0 ETH0.000006290.13050453
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer196011792024-04-07 3:36:11693 days ago1712460971
TeFood: TONE Token
0.00157046 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TEFoods827Token

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-03-11
*/

/**
 *Submitted for verification at Etherscan.io on 2018-02-25
 */

pragma solidity ^0.4.19;

library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a / b;
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

contract Ownable {
    address public owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    function Ownable() public {
        owner = msg.sender;
    }

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

contract ERC20Interface {
    function totalSupply() public constant returns (uint256);

    function balanceOf(address tokenOwner)
        public
        constant
        returns (uint256 balance);

    function allowance(address tokenOwner, address spender)
        public
        constant
        returns (uint256 remaining);

    function transfer(address to, uint256 tokens) public returns (bool success);

    function approve(address spender, uint256 tokens)
        public
        returns (bool success);

    function transferFrom(
        address from,
        address to,
        uint256 tokens
    ) public returns (bool success);

    event Transfer(address indexed from, address indexed to, uint256 tokens);
    event Approval(
        address indexed tokenOwner,
        address indexed spender,
        uint256 tokens
    );
}

contract ERC827 {
    function approve(
        address _spender,
        uint256 _value,
        bytes _data
    ) public returns (bool);

    function transfer(
        address _to,
        uint256 _value,
        bytes _data
    ) public returns (bool);

    function transferFrom(
        address _from,
        address _to,
        uint256 _value,
        bytes _data
    ) public returns (bool);
}

contract TEFoodsToken is Ownable, ERC20Interface {
    using SafeMath for uint256;

    string public constant name = "TE-FOOD/TustChain";
    string public constant symbol = "TONE";
    uint8 public constant decimals = 18;
    uint256 constant _totalSupply = 1000000000 * 1 ether;
    uint256 public transferrableTime = 9999999999;
    uint256 _vestedSupply;
    uint256 _circulatingSupply;
    mapping(address => uint256) balances;
    mapping(address => mapping(address => uint256)) allowed;

    struct vestedBalance {
        address addr;
        uint256 balance;
    }
    mapping(uint256 => vestedBalance[]) vestingMap;

    function TEFoodsToken() public {
        owner = msg.sender;
        balances[0x00] = _totalSupply;
    }

    event VestedTokensReleased(address to, uint256 amount);

    function allocateTokens(address addr, uint256 amount)
        public
        onlyOwner
        returns (bool)
    {
        require(addr != 0x00);
        require(amount > 0);
        balances[0x00] = balances[0x00].sub(amount);
        balances[addr] = balances[addr].add(amount);
        _circulatingSupply = _circulatingSupply.add(amount);
        assert(
            _vestedSupply.add(_circulatingSupply).add(balances[0x00]) ==
                _totalSupply
        );
        Transfer(0x00, addr, amount);
        return true;
    }

    function allocateVestedTokens(
        address addr,
        uint256 amount,
        uint256 vestingPeriod
    ) public onlyOwner returns (bool) {
        require(addr != 0x00);
        require(amount > 0);
        require(vestingPeriod > 0);
        balances[0x00] = balances[0x00].sub(amount);
        vestingMap[vestingPeriod].push(vestedBalance(addr, amount));
        _vestedSupply = _vestedSupply.add(amount);
        assert(
            _vestedSupply.add(_circulatingSupply).add(balances[0x00]) ==
                _totalSupply
        );
        return true;
    }

    function releaseVestedTokens(uint256 vestingPeriod) public {
        require(now >= transferrableTime.add(vestingPeriod));
        require(vestingMap[vestingPeriod].length > 0);
        require(vestingMap[vestingPeriod][0].balance > 0);
        var v = vestingMap[vestingPeriod];
        for (uint8 i = 0; i < v.length; i++) {
            balances[v[i].addr] = balances[v[i].addr].add(v[i].balance);
            _circulatingSupply = _circulatingSupply.add(v[i].balance);
            _vestedSupply = _vestedSupply.sub(v[i].balance);
            VestedTokensReleased(v[i].addr, v[i].balance);
            Transfer(0x00, v[i].addr, v[i].balance);
            v[i].balance = 0;
        }
    }

    function enableTransfers() public onlyOwner returns (bool) {
        transferrableTime = now.add(0);
        owner = 0x00;
        return true;
    }

    function() public payable {
        revert();
    }

    function totalSupply() public constant returns (uint256) {
        return _circulatingSupply;
    }

    function balanceOf(address tokenOwner)
        public
        constant
        returns (uint256 balance)
    {
        return balances[tokenOwner];
    }

    function vestedBalanceOf(address tokenOwner, uint256 vestingPeriod)
        public
        constant
        returns (uint256 balance)
    {
        var v = vestingMap[vestingPeriod];
        for (uint8 i = 0; i < v.length; i++) {
            if (v[i].addr == tokenOwner) return v[i].balance;
        }
        return 0;
    }

    function allowance(address tokenOwner, address spender)
        public
        constant
        returns (uint256 remaining)
    {
        return allowed[tokenOwner][spender];
    }

    function transfer(address to, uint256 tokens)
        public
        returns (bool success)
    {
        require(now >= transferrableTime);
        require(to != address(this));
        require(balances[msg.sender] >= tokens);
        balances[msg.sender] = balances[msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);
        Transfer(msg.sender, to, tokens);
        return true;
    }

    function approve(address spender, uint256 tokens)
        public
        returns (bool success)
    {
        require(now >= transferrableTime);
        require(spender != address(this));
        allowed[msg.sender][spender] = tokens;
        Approval(msg.sender, spender, tokens);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 tokens
    ) public returns (bool success) {
        require(now >= transferrableTime);
        require(to != address(this));
        require(allowed[from][msg.sender] >= tokens);
        balances[from] = balances[from].sub(tokens);
        allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);
        Transfer(from, to, tokens);
        return true;
    }
}

contract TEFoods827Token is TEFoodsToken, ERC827 {
    function approve(
        address _spender,
        uint256 _value,
        bytes _data
    ) public returns (bool) {
        super.approve(_spender, _value);
        require(_spender.call(_data));
        return true;
    }

    function transfer(
        address _to,
        uint256 _value,
        bytes _data
    ) public returns (bool) {
        super.transfer(_to, _value);
        require(_to.call(_data));
        return true;
    }

    function transferFrom(
        address _from,
        address _to,
        uint256 _value,
        bytes _data
    ) public returns (bool) {
        super.transferFrom(_from, _to, _value);
        require(_to.call(_data));
        return true;
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"vestingPeriod","type":"uint256"}],"name":"vestedBalanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"vestingPeriod","type":"uint256"}],"name":"releaseVestedTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"amount","type":"uint256"}],"name":"allocateTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"amount","type":"uint256"},{"name":"vestingPeriod","type":"uint256"}],"name":"allocateVestedTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"enableTransfers","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"transferrableTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"VestedTokensReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60606040526402540be3ff600155336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506b033b2e3c9fd0803ce8000000600460008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fc2806100d66000396000f300606060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610117578063084bdabe146101a5578063095ea7b3146101fb57806318160ddd1461025557806323b872dd1461027e578063313ce567146102f75780635c17f9f41461032657806370a08231146103c35780637d2aeb8a1461041057806386ce0285146104335780638da5cb5b1461048d57806395d89b41146104e2578063a29cc6c814610570578063a9059cbb146105d3578063ab67aa581461062d578063af35c6c7146106e9578063be45fd6214610716578063bf15ea76146107b3578063dd62ed3e146107dc578063f2fde38b14610848575b600080fd5b341561012257600080fd5b61012a610881565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561016a57808201518184015260208101905061014f565b50505050905090810190601f1680156101975780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101b057600080fd5b6101e5600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506108ba565b6040518082815260200191505060405180910390f35b341561020657600080fd5b61023b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506109a2565b604051808215151515815260200191505060405180910390f35b341561026057600080fd5b610268610ae0565b6040518082815260200191505060405180910390f35b341561028957600080fd5b6102dd600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610aea565b604051808215151515815260200191505060405180910390f35b341561030257600080fd5b61030a610e6c565b604051808260ff1660ff16815260200191505060405180910390f35b341561033157600080fd5b6103a9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610e71565b604051808215151515815260200191505060405180910390f35b34156103ce57600080fd5b6103fa600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f1f565b6040518082815260200191505060405180910390f35b341561041b57600080fd5b6104316004808035906020019091905050610f68565b005b341561043e57600080fd5b610473600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061138f565b604051808215151515815260200191505060405180910390f35b341561049857600080fd5b6104a06115fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104ed57600080fd5b6104f5611621565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561053557808201518184015260208101905061051a565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561057b57600080fd5b6105b9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190505061165a565b604051808215151515815260200191505060405180910390f35b34156105de57600080fd5b610613600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506118ab565b604051808215151515815260200191505060405180910390f35b341561063857600080fd5b6106cf600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611ae0565b604051808215151515815260200191505060405180910390f35b34156106f457600080fd5b6106fc611b90565b604051808215151515815260200191505060405180910390f35b341561072157600080fd5b610799600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611c4f565b604051808215151515815260200191505060405180910390f35b34156107be57600080fd5b6107c6611cfd565b6040518082815260200191505060405180910390f35b34156107e757600080fd5b610832600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d03565b6040518082815260200191505060405180910390f35b341561085357600080fd5b61087f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d8a565b005b6040805190810160405280601181526020017f54452d464f4f442f54757374436861696e00000000000000000000000000000081525081565b6000806000600660008581526020019081526020016000209150600090505b81805490508160ff161015610995578473ffffffffffffffffffffffffffffffffffffffff16828260ff1681548110151561091057fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561098857818160ff1681548110151561096f57fe5b906000526020600020906002020160010154925061099a565b80806001019150506108d9565b600092505b505092915050565b600060015442101515156109b557600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156109f057600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600354905090565b60006001544210151515610afd57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610b3857600080fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610bc357600080fd5b610c1582600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edf90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ce782600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edf90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610db982600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef890919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601281565b6000610e7d84846109a2565b508373ffffffffffffffffffffffffffffffffffffffff168260405180828051906020019080838360005b83811015610ec3578082015181840152602081019050610ea8565b50505050905090810190601f168015610ef05780820380516001836020036101000a031916815260200191505b5091505060006040518083038160008661646e5a03f19150501515610f1457600080fd5b600190509392505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080610f8083600154611ef890919063ffffffff16565b4210151515610f8e57600080fd5b60006006600085815260200190815260200160002080549050111515610fb357600080fd5b6000600660008581526020019081526020016000206000815481101515610fd657fe5b906000526020600020906002020160010154111515610ff457600080fd5b600660008481526020019081526020016000209150600090505b81805490508160ff16101561138a576110d3828260ff1681548110151561103157fe5b90600052602060002090600202016001015460046000858560ff1681548110151561105857fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef890919063ffffffff16565b60046000848460ff168154811015156110e857fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061118f828260ff1681548110151561116c57fe5b906000526020600020906002020160010154600354611ef890919063ffffffff16565b6003819055506111cc828260ff168154811015156111a957fe5b906000526020600020906002020160010154600254611edf90919063ffffffff16565b6002819055507f6bc5063c7239b75c8bf325a2a2238f726fada322163996bb6c93d5594fb119f0828260ff1681548110151561120457fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838360ff1681548110151561124757fe5b906000526020600020906002020160010154604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1818160ff168154811015156112b257fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef848460ff1681548110151561132e57fe5b9060005260206000209060020201600101546040518082815260200191505060405180910390a36000828260ff1681548110151561136857fe5b906000526020600020906002020160010181905550808060010191505061100e565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113ec57600080fd5b60008373ffffffffffffffffffffffffffffffffffffffff161415151561141257600080fd5b60008211151561142157600080fd5b61145d82600460008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edf90919063ffffffff16565b600460008073ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114dc82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef890919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061153482600354611ef890919063ffffffff16565b6003819055506b033b2e3c9fd0803ce8000000611599600460008073ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158b600354600254611ef890919063ffffffff16565b611ef890919063ffffffff16565b1415156115a257fe5b8273ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600481526020017f544f4e450000000000000000000000000000000000000000000000000000000081525081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116b757600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff16141515156116dd57600080fd5b6000831115156116ec57600080fd5b6000821115156116fb57600080fd5b61173783600460008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edf90919063ffffffff16565b600460008073ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506006600083815260200190815260200160002080548060010182816117899190611f16565b9160005260206000209060020201600060408051908101604052808873ffffffffffffffffffffffffffffffffffffffff16815260200187815250909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015550505061183283600254611ef890919063ffffffff16565b6002819055506b033b2e3c9fd0803ce8000000611897600460008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611889600354600254611ef890919063ffffffff16565b611ef890919063ffffffff16565b1415156118a057fe5b600190509392505050565b600060015442101515156118be57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156118f957600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561194757600080fd5b61199982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edf90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a2e82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef890919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000611aed858585610aea565b508373ffffffffffffffffffffffffffffffffffffffff168260405180828051906020019080838360005b83811015611b33578082015181840152602081019050611b18565b50505050905090810190601f168015611b605780820380516001836020036101000a031916815260200191505b5091505060006040518083038160008661646e5a03f19150501515611b8457600080fd5b60019050949350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bed57600080fd5b611c01600042611ef890919063ffffffff16565b60018190555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905090565b6000611c5b84846118ab565b508373ffffffffffffffffffffffffffffffffffffffff168260405180828051906020019080838360005b83811015611ca1578082015181840152602081019050611c86565b50505050905090810190601f168015611cce5780820380516001836020036101000a031916815260200191505b5091505060006040518083038160008661646e5a03f19150501515611cf257600080fd5b600190509392505050565b60015481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611de557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e2157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000828211151515611eed57fe5b818303905092915050565b6000808284019050838110151515611f0c57fe5b8091505092915050565b815481835581811511611f4357600202816002028360005260206000209182019101611f429190611f48565b5b505050565b611f9391905b80821115611f8f57600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182016000905550600201611f4e565b5090565b905600a165627a7a72305820240d5b45e082ec1ce44ea85bb7bbce831c4a198381b97c0b63dd88095ec25b530029

Deployed Bytecode

0x606060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610117578063084bdabe146101a5578063095ea7b3146101fb57806318160ddd1461025557806323b872dd1461027e578063313ce567146102f75780635c17f9f41461032657806370a08231146103c35780637d2aeb8a1461041057806386ce0285146104335780638da5cb5b1461048d57806395d89b41146104e2578063a29cc6c814610570578063a9059cbb146105d3578063ab67aa581461062d578063af35c6c7146106e9578063be45fd6214610716578063bf15ea76146107b3578063dd62ed3e146107dc578063f2fde38b14610848575b600080fd5b341561012257600080fd5b61012a610881565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561016a57808201518184015260208101905061014f565b50505050905090810190601f1680156101975780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101b057600080fd5b6101e5600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506108ba565b6040518082815260200191505060405180910390f35b341561020657600080fd5b61023b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506109a2565b604051808215151515815260200191505060405180910390f35b341561026057600080fd5b610268610ae0565b6040518082815260200191505060405180910390f35b341561028957600080fd5b6102dd600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610aea565b604051808215151515815260200191505060405180910390f35b341561030257600080fd5b61030a610e6c565b604051808260ff1660ff16815260200191505060405180910390f35b341561033157600080fd5b6103a9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610e71565b604051808215151515815260200191505060405180910390f35b34156103ce57600080fd5b6103fa600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f1f565b6040518082815260200191505060405180910390f35b341561041b57600080fd5b6104316004808035906020019091905050610f68565b005b341561043e57600080fd5b610473600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061138f565b604051808215151515815260200191505060405180910390f35b341561049857600080fd5b6104a06115fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104ed57600080fd5b6104f5611621565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561053557808201518184015260208101905061051a565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561057b57600080fd5b6105b9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190505061165a565b604051808215151515815260200191505060405180910390f35b34156105de57600080fd5b610613600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506118ab565b604051808215151515815260200191505060405180910390f35b341561063857600080fd5b6106cf600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611ae0565b604051808215151515815260200191505060405180910390f35b34156106f457600080fd5b6106fc611b90565b604051808215151515815260200191505060405180910390f35b341561072157600080fd5b610799600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611c4f565b604051808215151515815260200191505060405180910390f35b34156107be57600080fd5b6107c6611cfd565b6040518082815260200191505060405180910390f35b34156107e757600080fd5b610832600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d03565b6040518082815260200191505060405180910390f35b341561085357600080fd5b61087f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d8a565b005b6040805190810160405280601181526020017f54452d464f4f442f54757374436861696e00000000000000000000000000000081525081565b6000806000600660008581526020019081526020016000209150600090505b81805490508160ff161015610995578473ffffffffffffffffffffffffffffffffffffffff16828260ff1681548110151561091057fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561098857818160ff1681548110151561096f57fe5b906000526020600020906002020160010154925061099a565b80806001019150506108d9565b600092505b505092915050565b600060015442101515156109b557600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156109f057600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600354905090565b60006001544210151515610afd57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610b3857600080fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610bc357600080fd5b610c1582600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edf90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ce782600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edf90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610db982600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef890919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601281565b6000610e7d84846109a2565b508373ffffffffffffffffffffffffffffffffffffffff168260405180828051906020019080838360005b83811015610ec3578082015181840152602081019050610ea8565b50505050905090810190601f168015610ef05780820380516001836020036101000a031916815260200191505b5091505060006040518083038160008661646e5a03f19150501515610f1457600080fd5b600190509392505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080610f8083600154611ef890919063ffffffff16565b4210151515610f8e57600080fd5b60006006600085815260200190815260200160002080549050111515610fb357600080fd5b6000600660008581526020019081526020016000206000815481101515610fd657fe5b906000526020600020906002020160010154111515610ff457600080fd5b600660008481526020019081526020016000209150600090505b81805490508160ff16101561138a576110d3828260ff1681548110151561103157fe5b90600052602060002090600202016001015460046000858560ff1681548110151561105857fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef890919063ffffffff16565b60046000848460ff168154811015156110e857fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061118f828260ff1681548110151561116c57fe5b906000526020600020906002020160010154600354611ef890919063ffffffff16565b6003819055506111cc828260ff168154811015156111a957fe5b906000526020600020906002020160010154600254611edf90919063ffffffff16565b6002819055507f6bc5063c7239b75c8bf325a2a2238f726fada322163996bb6c93d5594fb119f0828260ff1681548110151561120457fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838360ff1681548110151561124757fe5b906000526020600020906002020160010154604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1818160ff168154811015156112b257fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef848460ff1681548110151561132e57fe5b9060005260206000209060020201600101546040518082815260200191505060405180910390a36000828260ff1681548110151561136857fe5b906000526020600020906002020160010181905550808060010191505061100e565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113ec57600080fd5b60008373ffffffffffffffffffffffffffffffffffffffff161415151561141257600080fd5b60008211151561142157600080fd5b61145d82600460008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edf90919063ffffffff16565b600460008073ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114dc82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef890919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061153482600354611ef890919063ffffffff16565b6003819055506b033b2e3c9fd0803ce8000000611599600460008073ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158b600354600254611ef890919063ffffffff16565b611ef890919063ffffffff16565b1415156115a257fe5b8273ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600481526020017f544f4e450000000000000000000000000000000000000000000000000000000081525081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116b757600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff16141515156116dd57600080fd5b6000831115156116ec57600080fd5b6000821115156116fb57600080fd5b61173783600460008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edf90919063ffffffff16565b600460008073ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506006600083815260200190815260200160002080548060010182816117899190611f16565b9160005260206000209060020201600060408051908101604052808873ffffffffffffffffffffffffffffffffffffffff16815260200187815250909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015550505061183283600254611ef890919063ffffffff16565b6002819055506b033b2e3c9fd0803ce8000000611897600460008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611889600354600254611ef890919063ffffffff16565b611ef890919063ffffffff16565b1415156118a057fe5b600190509392505050565b600060015442101515156118be57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156118f957600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561194757600080fd5b61199982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edf90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a2e82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef890919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000611aed858585610aea565b508373ffffffffffffffffffffffffffffffffffffffff168260405180828051906020019080838360005b83811015611b33578082015181840152602081019050611b18565b50505050905090810190601f168015611b605780820380516001836020036101000a031916815260200191505b5091505060006040518083038160008661646e5a03f19150501515611b8457600080fd5b60019050949350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bed57600080fd5b611c01600042611ef890919063ffffffff16565b60018190555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905090565b6000611c5b84846118ab565b508373ffffffffffffffffffffffffffffffffffffffff168260405180828051906020019080838360005b83811015611ca1578082015181840152602081019050611c86565b50505050905090810190601f168015611cce5780820380516001836020036101000a031916815260200191505b5091505060006040518083038160008661646e5a03f19150501515611cf257600080fd5b600190509392505050565b60015481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611de557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e2157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000828211151515611eed57fe5b818303905092915050565b6000808284019050838110151515611f0c57fe5b8091505092915050565b815481835581811511611f4357600202816002028360005260206000209182019101611f429190611f48565b5b505050565b611f9391905b80821115611f8f57600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182016000905550600201611f4e565b5090565b905600a165627a7a72305820240d5b45e082ec1ce44ea85bb7bbce831c4a198381b97c0b63dd88095ec25b530029

Deployed Bytecode Sourcemap

7584:784:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5473:8;;;2670:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5773:335:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6739:317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5497:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7064:513;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2771:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7640:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5606:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4565:702;;;;;;;;;;;;;;;;;;;;;;;;;;3410:552;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;779:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2726:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3970:587:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6310:421;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8107:258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5275:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7880:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2872:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6116:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1082:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;2670:49;;;;;;;;;;;;;;;;;;;;:::o;5773:335::-;5893:15;5926:5;5975:7;5934:10;:25;5945:13;5934:25;;;;;;;;;;;5926:33;;5985:1;5975:11;;5970:112;5992:1;:8;;;;5988:1;:12;;;5970:112;;;6039:10;6026:23;;:1;6028;6026:4;;;;;;;;;;;;;;;;;;;;;;:9;;;;;;;;;;;;:23;;;6022:48;;;6058:1;6060;6058:4;;;;;;;;;;;;;;;;;;;;;;:12;;;6051:19;;;;6022:48;6002:3;;;;;;;5970:112;;;6099:1;6092:8;;5773:335;;;;;;;:::o;6739:317::-;6823:12;6868:17;;6861:3;:24;;6853:33;;;;;;;;6924:4;6905:24;;:7;:24;;;;6897:33;;;;;;;;6972:6;6941:7;:19;6949:10;6941:19;;;;;;;;;;;;;;;:28;6961:7;6941:28;;;;;;;;;;;;;;;:37;;;;7010:7;6989:37;;6998:10;6989:37;;;7019:6;6989:37;;;;;;;;;;;;;;;;;;7044:4;7037:11;;6739:317;;;;:::o;5497:101::-;5545:7;5572:18;;5565:25;;5497:101;:::o;7064:513::-;7178:12;7218:17;;7211:3;:24;;7203:33;;;;;;;;7269:4;7255:19;;:2;:19;;;;7247:28;;;;;;;;7323:6;7294:7;:13;7302:4;7294:13;;;;;;;;;;;;;;;:25;7308:10;7294:25;;;;;;;;;;;;;;;;:35;;7286:44;;;;;;;;7358:26;7377:6;7358:8;:14;7367:4;7358:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;7341:8;:14;7350:4;7341:14;;;;;;;;;;;;;;;:43;;;;7423:37;7453:6;7423:7;:13;7431:4;7423:13;;;;;;;;;;;;;;;:25;7437:10;7423:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;7395:7;:13;7403:4;7395:13;;;;;;;;;;;;;;;:25;7409:10;7395:25;;;;;;;;;;;;;;;:65;;;;7486:24;7503:6;7486:8;:12;7495:2;7486:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;7471:8;:12;7480:2;7471:12;;;;;;;;;;;;;;;:39;;;;7536:2;7521:26;;7530:4;7521:26;;;7540:6;7521:26;;;;;;;;;;;;;;;;;;7565:4;7558:11;;7064:513;;;;;:::o;2771:35::-;2804:2;2771:35;:::o;7640:232::-;7754:4;7771:31;7785:8;7795:6;7771:13;:31::i;:::-;;7821:8;:13;;7835:5;7821:20;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7813:29:0;;;;;;;;7860:4;7853:11;;7640:232;;;;;:::o;5606:159::-;5697:15;5737:8;:20;5746:10;5737:20;;;;;;;;;;;;;;;;5730:27;;5606:159;;;:::o;4565:702::-;4814:5;4863:7;4650:36;4672:13;4650:17;;:21;;:36;;;;:::i;:::-;4643:3;:43;;4635:52;;;;;;;;4741:1;4706:10;:25;4717:13;4706:25;;;;;;;;;;;:32;;;;:36;4698:45;;;;;;;;4801:1;4762:10;:25;4773:13;4762:25;;;;;;;;;;;4788:1;4762:28;;;;;;;;;;;;;;;;;;;;:36;;;:40;4754:49;;;;;;;;4822:10;:25;4833:13;4822:25;;;;;;;;;;;4814:33;;4873:1;4863:11;;4858:402;4880:1;:8;;;;4876:1;:12;;;4858:402;;;4932:37;4956:1;4958;4956:4;;;;;;;;;;;;;;;;;;;;;;:12;;;4932:8;:19;4941:1;4943;4941:4;;;;;;;;;;;;;;;;;;;;;;:9;;;;;;;;;;;;4932:19;;;;;;;;;;;;;;;;:23;;:37;;;;:::i;:::-;4910:8;:19;4919:1;4921;4919:4;;;;;;;;;;;;;;;;;;;;;;:9;;;;;;;;;;;;4910:19;;;;;;;;;;;;;;;:59;;;;5005:36;5028:1;5030;5028:4;;;;;;;;;;;;;;;;;;;;;;:12;;;5005:18;;:22;;:36;;;;:::i;:::-;4984:18;:57;;;;5072:31;5090:1;5092;5090:4;;;;;;;;;;;;;;;;;;;;;;:12;;;5072:13;;:17;;:31;;;;:::i;:::-;5056:13;:47;;;;5118:45;5139:1;5141;5139:4;;;;;;;;;;;;;;;;;;;;;;:9;;;;;;;;;;;;5150:1;5152;5150:4;;;;;;;;;;;;;;;;;;;;;;:12;;;5118:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;5193:1;5195;5193:4;;;;;;;;;;;;;;;;;;;;;;:9;;;;;;;;;;;;5178:39;;5187:4;5178:39;5204:1;5206;5204:4;;;;;;;;;;;;;;;;;;;;;;:12;;;5178:39;;;;;;;;;;;;;;;;;;5247:1;5232;5234;5232:4;;;;;;;;;;;;;;;;;;;;;;:12;;:16;;;;4890:3;;;;;;;4858:402;;;4565:702;;;:::o;3410:552::-;3517:4;1048:5;;;;;;;;;;;1034:19;;:10;:19;;;1026:28;;;;;;;;3555:4;3547;:12;;;;3539:21;;;;;;;;3588:1;3579:6;:10;3571:19;;;;;;;;3618:26;3637:6;3618:8;:14;3627:4;3618:14;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;3601:8;:14;3610:4;3601:14;;;;;;;;;;;;;:43;;;;3672:26;3691:6;3672:8;:14;3681:4;3672:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;3655:8;:14;3664:4;3655:14;;;;;;;;;;;;;;;:43;;;;3730:30;3753:6;3730:18;;:22;;:30;;;;:::i;:::-;3709:18;:51;;;;2845:20;3792:57;3834:8;:14;3843:4;3834:14;;;;;;;;;;;;;;3792:37;3810:18;;3792:13;;:17;;:37;;;;:::i;:::-;:41;;:57;;;;:::i;:::-;:90;3771:122;;;;;;3919:4;3904:28;;3913:4;3904:28;3925:6;3904:28;;;;;;;;;;;;;;;;;;3950:4;3943:11;;3410:552;;;;:::o;779:20::-;;;;;;;;;;;;;:::o;2726:38::-;;;;;;;;;;;;;;;;;;;;:::o;3970:587::-;4113:4;1048:5;;;;;;;;;;;1034:19;;:10;:19;;;1026:28;;;;;;;;4146:4;4138;:12;;;;4130:21;;;;;;;;4179:1;4170:6;:10;4162:19;;;;;;;;4216:1;4200:13;:17;4192:26;;;;;;;;4246;4265:6;4246:8;:14;4255:4;4246:14;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;4229:8;:14;4238:4;4229:14;;;;;;;;;;;;;:43;;;;4283:10;:25;4294:13;4283:25;;;;;;;;;;;:59;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;4314:27;;;;;;;;;4328:4;4314:27;;;;;;4334:6;4314:27;;;4283:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4369:25;4387:6;4369:13;;:17;;:25;;;;:::i;:::-;4353:13;:41;;;;2845:20;4426:57;4468:8;:14;4477:4;4468:14;;;;;;;;;;;;;;4426:37;4444:18;;4426:13;;:17;;:37;;;;:::i;:::-;:41;;:57;;;;:::i;:::-;:90;4405:122;;;;;;4545:4;4538:11;;3970:587;;;;;:::o;6310:421::-;6390:12;6435:17;;6428:3;:24;;6420:33;;;;;;;;6486:4;6472:19;;:2;:19;;;;6464:28;;;;;;;;6535:6;6511:8;:20;6520:10;6511:20;;;;;;;;;;;;;;;;:30;;6503:39;;;;;;;;6576:32;6601:6;6576:8;:20;6585:10;6576:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;6553:8;:20;6562:10;6553:20;;;;;;;;;;;;;;;:55;;;;6634:24;6651:6;6634:8;:12;6643:2;6634:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;6619:8;:12;6628:2;6619:12;;;;;;;;;;;;;;;:39;;;;6690:2;6669:32;;6678:10;6669:32;;;6694:6;6669:32;;;;;;;;;;;;;;;;;;6719:4;6712:11;;6310:421;;;;:::o;8107:258::-;8245:4;8262:38;8281:5;8288:3;8293:6;8262:18;:38::i;:::-;;8319:3;:8;;8328:5;8319:15;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8311:24:0;;;;;;;;8353:4;8346:11;;8107:258;;;;;;:::o;5275:153::-;5328:4;1048:5;;;;;;;;;;;1034:19;;:10;:19;;;1026:28;;;;;;;;5365:10;5373:1;5365:3;:7;;:10;;;;:::i;:::-;5345:17;:30;;;;5394:4;5386:5;;:12;;;;;;;;;;;;;;;;;;5416:4;5409:11;;5275:153;:::o;7880:219::-;7990:4;8007:27;8022:3;8027:6;8007:14;:27::i;:::-;;8053:3;:8;;8062:5;8053:15;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8045:24:0;;;;;;;;8087:4;8080:11;;7880:219;;;;;:::o;2872:45::-;;;;:::o;6116:186::-;6224:17;6266:7;:19;6274:10;6266:19;;;;;;;;;;;;;;;:28;6286:7;6266:28;;;;;;;;;;;;;;;;6259:35;;6116:186;;;;:::o;1082:187::-;1048:5;;;;;;;;;;;1034:19;;:10;:19;;;1026:28;;;;;;;;1183:1;1163:22;;:8;:22;;;;1155:31;;;;;;;;1225:8;1197:37;;1218:5;;;;;;;;;;;1197:37;;;;;;;;;;;;1253:8;1245:5;;:16;;;;;;;;;;;;;;;;;;1082:187;:::o;470:123::-;528:7;560:1;555;:6;;548:14;;;;;;584:1;580;:5;573:12;;470:123;;;;:::o;601:147::-;659:7;679:9;695:1;691;:5;679:17;;719:1;714;:6;;707:14;;;;;;739:1;732:8;;601:147;;;;;:::o;7584:784::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://240d5b45e082ec1ce44ea85bb7bbce831c4a198381b97c0b63dd88095ec25b53

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

OVERVIEW

A food traceability solution.

Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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