Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 268 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 19281059 | 282 days ago | IN | 0 ETH | 0.00192193 | ||||
Transfer | 19281031 | 282 days ago | IN | 0 ETH | 0.00247094 | ||||
Transfer | 18281262 | 422 days ago | IN | 0 ETH | 0.00032738 | ||||
Transfer With Lo... | 18075346 | 451 days ago | IN | 0 ETH | 0.00082739 | ||||
Transfer With Lo... | 18075345 | 451 days ago | IN | 0 ETH | 0.00088539 | ||||
Transfer With Lo... | 18075344 | 451 days ago | IN | 0 ETH | 0.00082323 | ||||
Transfer With Lo... | 18075333 | 451 days ago | IN | 0 ETH | 0.00082711 | ||||
Transfer With Lo... | 18075333 | 451 days ago | IN | 0 ETH | 0.00082711 | ||||
Transfer With Lo... | 18075333 | 451 days ago | IN | 0 ETH | 0.00082723 | ||||
Transfer With Lo... | 18075330 | 451 days ago | IN | 0 ETH | 0.00079533 | ||||
Transfer With Lo... | 18075330 | 451 days ago | IN | 0 ETH | 0.00079533 | ||||
Transfer With Lo... | 18075329 | 451 days ago | IN | 0 ETH | 0.00081245 | ||||
Transfer With Lo... | 18075328 | 451 days ago | IN | 0 ETH | 0.00083827 | ||||
Transfer With Lo... | 18075327 | 451 days ago | IN | 0 ETH | 0.0008472 | ||||
Transfer With Lo... | 18075327 | 451 days ago | IN | 0 ETH | 0.0008472 | ||||
Transfer With Lo... | 18075326 | 451 days ago | IN | 0 ETH | 0.00089403 | ||||
Transfer With Lo... | 18075325 | 451 days ago | IN | 0 ETH | 0.00091644 | ||||
Transfer With Lo... | 18075324 | 451 days ago | IN | 0 ETH | 0.00086809 | ||||
Transfer With Lo... | 18075323 | 451 days ago | IN | 0 ETH | 0.00085773 | ||||
Transfer With Lo... | 18075322 | 451 days ago | IN | 0 ETH | 0.00090035 | ||||
Transfer With Lo... | 18075321 | 451 days ago | IN | 0 ETH | 0.00089225 | ||||
Transfer With Lo... | 18075321 | 451 days ago | IN | 0 ETH | 0.00089237 | ||||
Transfer With Lo... | 18075320 | 451 days ago | IN | 0 ETH | 0.00088962 | ||||
Transfer With Lo... | 18075319 | 451 days ago | IN | 0 ETH | 0.00090076 | ||||
Transfer With Lo... | 18075318 | 451 days ago | IN | 0 ETH | 0.00088578 |
Loading...
Loading
Contract Name:
WIT
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-06 */ // SPDX-License-Identifier: MIT // This smart contract code is for Wit Coin (WIT), a key asset used within the Weconomy.arT platform. pragma solidity ^0.5.0; library SafeMath { /** * @dev Multiplies two unsigned integers, reverts on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, // but the benefit is lost if 'b' is also tested. // https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b); return c; } /** * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); uint256 c = a - b; return c; } /** * @dev Adds two unsigned integers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } /** * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo), * reverts when dividing by zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } library Roles { struct Role { mapping (address => bool) bearer; } /** * @dev give an account access to this role */ function add(Role storage role, address account) internal { require(account != address(0)); require(!has(role, account)); role.bearer[account] = true; } /** * @dev remove an account's access to this role */ function remove(Role storage role, address account) internal { require(account != address(0)); require(has(role, account)); role.bearer[account] = false; } /** * @dev check if an account has this role * @return bool */ function has(Role storage role, address account) internal view returns (bool) { require(account != address(0)); return role.bearer[account]; } } contract Ownable { address public owner; address public newOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() public { owner = msg.sender; newOwner = address(0); } modifier onlyOwner() { require(msg.sender == owner); _; } modifier onlyNewOwner() { require(msg.sender != address(0)); require(msg.sender == newOwner); _; } function isOwner(address account) public view returns (bool) { if( account == owner ){ return true; } else { return false; } } function transferOwnership(address _newOwner) public onlyOwner { require(_newOwner != address(0)); newOwner = _newOwner; } function acceptOwnership() public onlyNewOwner returns(bool) { emit OwnershipTransferred(owner, newOwner); owner = newOwner; newOwner = address(0); } } contract PauserRole is Ownable { using Roles for Roles.Role; event PauserAdded(address indexed account); event PauserRemoved(address indexed account); Roles.Role private _pausers; constructor () internal { _addPauser(msg.sender); } modifier onlyPauser() { require(isPauser(msg.sender)|| isOwner(msg.sender)); _; } function isPauser(address account) public view returns (bool) { return _pausers.has(account); } function addPauser(address account) public onlyPauser { _addPauser(account); } function removePauser(address account) public onlyOwner { _removePauser(account); } function renouncePauser() public { _removePauser(msg.sender); } function _addPauser(address account) internal { _pausers.add(account); emit PauserAdded(account); } function _removePauser(address account) internal { _pausers.remove(account); emit PauserRemoved(account); } } interface IERC20 { function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract ERC20 is IERC20 { using SafeMath for uint256; mapping (address => uint256) internal _balances; mapping (address => mapping (address => uint256)) internal _allowed; uint256 private _totalSupply; /** * @dev Total number of tokens in existence */ function totalSupply() public view returns (uint256) { return _totalSupply; } /** * @dev Gets the balance of the specified address. * @param owner The address to query the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address owner) public view returns (uint256) { return _balances[owner]; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param owner address The address which owns the funds. * @param spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address owner, address spender) public view returns (uint256) { return _allowed[owner][spender]; } /** * @dev Transfer token for a specified address * @param to The address to transfer to. * @param value The amount to be transferred. */ function transfer(address to, uint256 value) public returns (bool) { _transfer(msg.sender, to, value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param spender The address which will spend the funds. * @param value The amount of tokens to be spent. */ function approve(address spender, uint256 value) public returns (bool) { require(spender != address(0)); _allowed[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } /** * @dev Transfer tokens from one address to another. * Note that while this function emits an Approval event, this is not required as per the specification, * and other compliant implementations may not emit the event. * @param from address The address which you want to send tokens from * @param to address The address which you want to transfer to * @param value uint256 the amount of tokens to be transferred */ function transferFrom(address from, address to, uint256 value) public returns (bool) { _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value); _transfer(from, to, value); emit Approval(from, msg.sender, _allowed[from][msg.sender]); return true; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * approve should be called when allowed_[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * Emits an Approval event. * @param spender The address which will spend the funds. * @param addedValue The amount of tokens to increase the allowance by. */ function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { require(spender != address(0)); _allowed[msg.sender][spender] = _allowed[msg.sender][spender].add(addedValue); emit Approval(msg.sender, spender, _allowed[msg.sender][spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * approve should be called when allowed_[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * Emits an Approval event. * @param spender The address which will spend the funds. * @param subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { require(spender != address(0)); _allowed[msg.sender][spender] = _allowed[msg.sender][spender].sub(subtractedValue); emit Approval(msg.sender, spender, _allowed[msg.sender][spender]); return true; } /** * @dev Transfer token for a specified addresses * @param from The address to transfer from. * @param to The address to transfer to. * @param value The amount to be transferred. */ function _transfer(address from, address to, uint256 value) internal { require(to != address(0)); _balances[from] = _balances[from].sub(value); _balances[to] = _balances[to].add(value); emit Transfer(from, to, value); } /** * @dev Internal function that mints an amount of the token and assigns it to * an account. This encapsulates the modification of balances such that the * proper events are emitted. * @param account The account that will receive the created tokens. * @param value The amount that will be created. */ function _mint(address account, uint256 value) internal { require(account != address(0)); _totalSupply = _totalSupply.add(value); _balances[account] = _balances[account].add(value); emit Transfer(address(0), account, value); } } contract ERC20Detailed is ERC20 { string private _name; string private _symbol; uint8 private _decimals; constructor (string memory name, string memory symbol, uint8 decimals) public { _name = name; _symbol = symbol; _decimals = decimals; } /** * @return the name of the token. */ function name() public view returns (string memory) { return _name; } /** * @return the symbol of the token. */ function symbol() public view returns (string memory) { return _symbol; } /** * @return the number of decimals of the token. */ function decimals() public view returns (uint8) { return _decimals; } } contract WIT is ERC20Detailed, PauserRole { struct LockInfo { uint256 _releaseTime; uint256 _amount; } mapping (address => LockInfo[]) public timelockList; event Lock(address indexed holder, uint256 value, uint256 releaseTime); event Unlock(address indexed holder, uint256 value); constructor() ERC20Detailed("WIT Coin", "WIT", 18) public { _mint(msg.sender, 2000000000 * (10 ** 18)); } function balanceOf(address owner) public view returns (uint256) { uint256 totalBalance = super.balanceOf(owner); if( timelockList[owner].length >0 ){ for(uint i=0; i<timelockList[owner].length;i++){ totalBalance = totalBalance.add(timelockList[owner][i]._amount); } } return totalBalance; } function transfer(address to, uint256 value) public returns (bool) { if (timelockList[msg.sender].length > 0 ) { _autoUnlock(msg.sender); } return super.transfer(to, value); } function transferFrom(address from, address to, uint256 value) public returns (bool) { if (timelockList[from].length > 0) { _autoUnlock(from); } return super.transferFrom(from, to, value); } function transferWithLock(address holder, uint256 value, uint256 releaseTime) public onlyPauser returns (bool) { _transfer(msg.sender, holder, value); _lock(holder,value,releaseTime); return true; } function unlock(address holder, uint256 idx) public onlyPauser returns (bool) { require( timelockList[holder].length > idx, "There is not lock info."); _unlock(holder,idx); return true; } function _lock(address holder, uint256 value, uint256 releaseTime) internal returns(bool) { _balances[holder] = _balances[holder].sub(value); timelockList[holder].push( LockInfo(releaseTime, value) ); emit Lock(holder, value, releaseTime); return true; } function _unlock(address holder, uint256 idx) internal returns(bool) { LockInfo storage lockinfo = timelockList[holder][idx]; uint256 releaseAmount = lockinfo._amount; delete timelockList[holder][idx]; timelockList[holder][idx] = timelockList[holder][timelockList[holder].length.sub(1)]; timelockList[holder].length -=1; emit Unlock(holder, releaseAmount); _balances[holder] = _balances[holder].add(releaseAmount); return true; } function _autoUnlock(address holder) internal returns(bool) { for(uint256 idx =0; idx < timelockList[holder].length ; idx++ ) { if (timelockList[holder][idx]._releaseTime <= now) { // If lockupinfo was deleted, loop restart at same position. if( _unlock(holder, idx) ) { idx -=1; } } } return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"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":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"releaseTime","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"PauserRemoved","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":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Unlock","type":"event"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isPauser","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"timelockList","outputs":[{"internalType":"uint256","name":"_releaseTime","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"releaseTime","type":"uint256"}],"name":"transferWithLock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"unlock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051806040016040528060088152602001672ba4aa1021b7b4b760c11b8152506040518060400160405280600381526020016215d25560ea1b8152506012826003908051906020019062000069929190620002ac565b5081516200007f906004906020850190620002ac565b5060058054336101008102610100600160a81b031960ff90951660ff199093169290921793909316179055600680546001600160a01b0319169055620000d1925090506001600160e01b03620000f816565b620000f2336b06765c793fa10079d00000006001600160e01b036200014a16565b62000351565b620001138160076200020360201b6200118c1790919060201c565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b6001600160a01b0382166200015e57600080fd5b6200017a816002546200025c60201b62000cdd1790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620001ad91839062000cdd6200025c821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b0381166200021757600080fd5b6200022c82826001600160e01b036200027616565b156200023757600080fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000828201838110156200026f57600080fd5b9392505050565b60006001600160a01b0382166200028c57600080fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002ef57805160ff19168380011785556200031f565b828001600101855582156200031f579182015b828111156200031f57825182559160200191906001019062000302565b506200032d92915062000331565b5090565b6200034e91905b808211156200032d576000815560010162000338565b90565b61126280620003616000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806379ba5097116100c3578063a9059cbb1161007c578063a9059cbb146103fd578063d26c4a7614610429578063d4ee1d901461046e578063dd62ed3e14610476578063de6baccb146104a4578063f2fde38b146104d65761014d565b806379ba50971461034b5780637eee288d1461035357806382dc1ec41461037f5780638da5cb5b146103a557806395d89b41146103c9578063a457c2d7146103d15761014d565b8063313ce56711610115578063313ce5671461028557806339509351146102a357806346fbf68e146102cf5780636b2c0f55146102f55780636ef8d66d1461031d57806370a08231146103255761014d565b806306fdde0314610152578063095ea7b3146101cf57806318160ddd1461020f57806323b872dd146102295780632f54bf6e1461025f575b600080fd5b61015a6104fc565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019457818101518382015260200161017c565b50505050905090810190601f1680156101c15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101fb600480360360408110156101e557600080fd5b506001600160a01b038135169060200135610593565b604080519115158252519081900360200190f35b61021761060f565b60408051918252519081900360200190f35b6101fb6004803603606081101561023f57600080fd5b506001600160a01b03813581169160208101359091169060400135610615565b6101fb6004803603602081101561027557600080fd5b50356001600160a01b0316610651565b61028d610680565b6040805160ff9092168252519081900360200190f35b6101fb600480360360408110156102b957600080fd5b506001600160a01b038135169060200135610689565b6101fb600480360360208110156102e557600080fd5b50356001600160a01b0316610737565b61031b6004803603602081101561030b57600080fd5b50356001600160a01b0316610750565b005b61031b610778565b6102176004803603602081101561033b57600080fd5b50356001600160a01b0316610783565b6101fb61082e565b6101fb6004803603604081101561036957600080fd5b506001600160a01b0381351690602001356108c9565b61031b6004803603602081101561039557600080fd5b50356001600160a01b031661096c565b6103ad610996565b604080516001600160a01b039092168252519081900360200190f35b61015a6109aa565b6101fb600480360360408110156103e757600080fd5b506001600160a01b038135169060200135610a0b565b6101fb6004803603604081101561041357600080fd5b506001600160a01b038135169060200135610a54565b6104556004803603604081101561043f57600080fd5b506001600160a01b038135169060200135610a85565b6040805192835260208301919091528051918290030190f35b6103ad610abe565b6102176004803603604081101561048c57600080fd5b506001600160a01b0381358116916020013516610acd565b6101fb600480360360608110156104ba57600080fd5b506001600160a01b038135169060208101359060400135610af8565b61031b600480360360208110156104ec57600080fd5b50356001600160a01b0316610b3c565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105885780601f1061055d57610100808354040283529160200191610588565b820191906000526020600020905b81548152906001019060200180831161056b57829003601f168201915b505050505090505b90565b60006001600160a01b0383166105a857600080fd5b3360008181526001602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60025490565b6001600160a01b0383166000908152600860205260408120541561063e5761063c84610b8d565b505b610649848484610c14565b949350505050565b6005546000906001600160a01b038381166101009092041614156106775750600161067b565b5060005b919050565b60055460ff1690565b60006001600160a01b03831661069e57600080fd5b3360009081526001602090815260408083206001600160a01b03871684529091529020546106d2908363ffffffff610cdd16565b3360008181526001602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600061074a60078363ffffffff610cef16565b92915050565b60055461010090046001600160a01b0316331461076c57600080fd5b61077581610d24565b50565b61078133610d24565b565b60008061078f83610d6c565b6001600160a01b0384166000908152600860205260409020549091501561074a5760005b6001600160a01b038416600090815260086020526040902054811015610827576001600160a01b0384166000908152600860205260409020805461081d9190839081106107fc57fe5b90600052602060002090600202016001015483610cdd90919063ffffffff16565b91506001016107b3565b5092915050565b60003361083a57600080fd5b6006546001600160a01b0316331461085157600080fd5b6006546005546040516001600160a01b0392831692610100909204909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805460058054610100600160a81b0319166101006001600160a01b038416021790556001600160a01b031916905590565b60006108d433610737565b806108e357506108e333610651565b6108ec57600080fd5b6001600160a01b0383166000908152600860205260409020548210610958576040805162461bcd60e51b815260206004820152601760248201527f5468657265206973206e6f74206c6f636b20696e666f2e000000000000000000604482015290519081900360640190fd5b6109628383610d87565b5060019392505050565b61097533610737565b80610984575061098433610651565b61098d57600080fd5b61077581610f50565b60055461010090046001600160a01b031681565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105885780601f1061055d57610100808354040283529160200191610588565b60006001600160a01b038316610a2057600080fd5b3360009081526001602090815260408083206001600160a01b03871684529091529020546106d2908363ffffffff610f9816565b3360009081526008602052604081205415610a7457610a7233610b8d565b505b610a7e8383610fad565b9392505050565b60086020528160005260406000208181548110610a9e57fe5b600091825260209091206002909102018054600190910154909250905082565b6006546001600160a01b031681565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000610b0333610737565b80610b125750610b1233610651565b610b1b57600080fd5b610b26338585610fb6565b610b31848484611081565b506001949350505050565b60055461010090046001600160a01b03163314610b5857600080fd5b6001600160a01b038116610b6b57600080fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000805b6001600160a01b038316600090815260086020526040902054811015610c0b576001600160a01b0383166000908152600860205260409020805442919083908110610bd857fe5b90600052602060002090600202016000015411610c0357610bf98382610d87565b15610c0357600019015b600101610b91565b50600192915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054610c48908363ffffffff610f9816565b6001600160a01b0385166000908152600160209081526040808320338452909152902055610c77848484610fb6565b6001600160a01b0384166000818152600160209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600082820183811015610a7e57600080fd5b60006001600160a01b038216610d0457600080fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610d3560078263ffffffff61114416565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b6001600160a01b031660009081526020819052604090205490565b6001600160a01b0382166000908152600860205260408120805482919084908110610dae57fe5b600091825260208083206001600290930201918201546001600160a01b03881684526008909152604090922080549193509085908110610dea57fe5b60009182526020808320600290920290910182815560019081018390556001600160a01b03881683526008909152604090912080549091610e31919063ffffffff610f9816565b81548110610e3b57fe5b906000526020600020906002020160086000876001600160a01b03166001600160a01b031681526020019081526020016000208581548110610e7957fe5b60009182526020808320845460029093020191825560019384015493909101929092556001600160a01b038716815260089091526040902080546000190190610ec290826111d8565b506040805182815290516001600160a01b038716917f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1919081900360200190a26001600160a01b038516600090815260208190526040902054610f2b908263ffffffff610cdd16565b6001600160a01b03861660009081526020819052604090205550600191505092915050565b610f6160078263ffffffff61118c16565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b600082821115610fa757600080fd5b50900390565b6000610c0b3384845b6001600160a01b038216610fc957600080fd5b6001600160a01b038316600090815260208190526040902054610ff2908263ffffffff610f9816565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611027908263ffffffff610cdd16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6001600160a01b0383166000908152602081905260408120546110aa908463ffffffff610f9816565b6001600160a01b0385166000818152602081815260408083209490945560088152838220845180860186528781528083018981528254600181810185559386529484902091516002909502909101938455519201919091558251868152908101859052825191927f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b92918290030190a25060019392505050565b6001600160a01b03811661115757600080fd5b6111618282610cef565b61116a57600080fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b03811661119f57600080fd5b6111a98282610cef565b156111b357600080fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b815481835581811115611204576002028160020283600052602060002091820191016112049190611209565b505050565b61059091905b80821115611229576000808255600182015560020161120f565b509056fea265627a7a723158203373703f97db3c1ee42da9776d73799a76a98b9494625594ab209fd5dc00892d64736f6c63430005110032
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806379ba5097116100c3578063a9059cbb1161007c578063a9059cbb146103fd578063d26c4a7614610429578063d4ee1d901461046e578063dd62ed3e14610476578063de6baccb146104a4578063f2fde38b146104d65761014d565b806379ba50971461034b5780637eee288d1461035357806382dc1ec41461037f5780638da5cb5b146103a557806395d89b41146103c9578063a457c2d7146103d15761014d565b8063313ce56711610115578063313ce5671461028557806339509351146102a357806346fbf68e146102cf5780636b2c0f55146102f55780636ef8d66d1461031d57806370a08231146103255761014d565b806306fdde0314610152578063095ea7b3146101cf57806318160ddd1461020f57806323b872dd146102295780632f54bf6e1461025f575b600080fd5b61015a6104fc565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019457818101518382015260200161017c565b50505050905090810190601f1680156101c15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101fb600480360360408110156101e557600080fd5b506001600160a01b038135169060200135610593565b604080519115158252519081900360200190f35b61021761060f565b60408051918252519081900360200190f35b6101fb6004803603606081101561023f57600080fd5b506001600160a01b03813581169160208101359091169060400135610615565b6101fb6004803603602081101561027557600080fd5b50356001600160a01b0316610651565b61028d610680565b6040805160ff9092168252519081900360200190f35b6101fb600480360360408110156102b957600080fd5b506001600160a01b038135169060200135610689565b6101fb600480360360208110156102e557600080fd5b50356001600160a01b0316610737565b61031b6004803603602081101561030b57600080fd5b50356001600160a01b0316610750565b005b61031b610778565b6102176004803603602081101561033b57600080fd5b50356001600160a01b0316610783565b6101fb61082e565b6101fb6004803603604081101561036957600080fd5b506001600160a01b0381351690602001356108c9565b61031b6004803603602081101561039557600080fd5b50356001600160a01b031661096c565b6103ad610996565b604080516001600160a01b039092168252519081900360200190f35b61015a6109aa565b6101fb600480360360408110156103e757600080fd5b506001600160a01b038135169060200135610a0b565b6101fb6004803603604081101561041357600080fd5b506001600160a01b038135169060200135610a54565b6104556004803603604081101561043f57600080fd5b506001600160a01b038135169060200135610a85565b6040805192835260208301919091528051918290030190f35b6103ad610abe565b6102176004803603604081101561048c57600080fd5b506001600160a01b0381358116916020013516610acd565b6101fb600480360360608110156104ba57600080fd5b506001600160a01b038135169060208101359060400135610af8565b61031b600480360360208110156104ec57600080fd5b50356001600160a01b0316610b3c565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105885780601f1061055d57610100808354040283529160200191610588565b820191906000526020600020905b81548152906001019060200180831161056b57829003601f168201915b505050505090505b90565b60006001600160a01b0383166105a857600080fd5b3360008181526001602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60025490565b6001600160a01b0383166000908152600860205260408120541561063e5761063c84610b8d565b505b610649848484610c14565b949350505050565b6005546000906001600160a01b038381166101009092041614156106775750600161067b565b5060005b919050565b60055460ff1690565b60006001600160a01b03831661069e57600080fd5b3360009081526001602090815260408083206001600160a01b03871684529091529020546106d2908363ffffffff610cdd16565b3360008181526001602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600061074a60078363ffffffff610cef16565b92915050565b60055461010090046001600160a01b0316331461076c57600080fd5b61077581610d24565b50565b61078133610d24565b565b60008061078f83610d6c565b6001600160a01b0384166000908152600860205260409020549091501561074a5760005b6001600160a01b038416600090815260086020526040902054811015610827576001600160a01b0384166000908152600860205260409020805461081d9190839081106107fc57fe5b90600052602060002090600202016001015483610cdd90919063ffffffff16565b91506001016107b3565b5092915050565b60003361083a57600080fd5b6006546001600160a01b0316331461085157600080fd5b6006546005546040516001600160a01b0392831692610100909204909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805460058054610100600160a81b0319166101006001600160a01b038416021790556001600160a01b031916905590565b60006108d433610737565b806108e357506108e333610651565b6108ec57600080fd5b6001600160a01b0383166000908152600860205260409020548210610958576040805162461bcd60e51b815260206004820152601760248201527f5468657265206973206e6f74206c6f636b20696e666f2e000000000000000000604482015290519081900360640190fd5b6109628383610d87565b5060019392505050565b61097533610737565b80610984575061098433610651565b61098d57600080fd5b61077581610f50565b60055461010090046001600160a01b031681565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105885780601f1061055d57610100808354040283529160200191610588565b60006001600160a01b038316610a2057600080fd5b3360009081526001602090815260408083206001600160a01b03871684529091529020546106d2908363ffffffff610f9816565b3360009081526008602052604081205415610a7457610a7233610b8d565b505b610a7e8383610fad565b9392505050565b60086020528160005260406000208181548110610a9e57fe5b600091825260209091206002909102018054600190910154909250905082565b6006546001600160a01b031681565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000610b0333610737565b80610b125750610b1233610651565b610b1b57600080fd5b610b26338585610fb6565b610b31848484611081565b506001949350505050565b60055461010090046001600160a01b03163314610b5857600080fd5b6001600160a01b038116610b6b57600080fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000805b6001600160a01b038316600090815260086020526040902054811015610c0b576001600160a01b0383166000908152600860205260409020805442919083908110610bd857fe5b90600052602060002090600202016000015411610c0357610bf98382610d87565b15610c0357600019015b600101610b91565b50600192915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054610c48908363ffffffff610f9816565b6001600160a01b0385166000908152600160209081526040808320338452909152902055610c77848484610fb6565b6001600160a01b0384166000818152600160209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600082820183811015610a7e57600080fd5b60006001600160a01b038216610d0457600080fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610d3560078263ffffffff61114416565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b6001600160a01b031660009081526020819052604090205490565b6001600160a01b0382166000908152600860205260408120805482919084908110610dae57fe5b600091825260208083206001600290930201918201546001600160a01b03881684526008909152604090922080549193509085908110610dea57fe5b60009182526020808320600290920290910182815560019081018390556001600160a01b03881683526008909152604090912080549091610e31919063ffffffff610f9816565b81548110610e3b57fe5b906000526020600020906002020160086000876001600160a01b03166001600160a01b031681526020019081526020016000208581548110610e7957fe5b60009182526020808320845460029093020191825560019384015493909101929092556001600160a01b038716815260089091526040902080546000190190610ec290826111d8565b506040805182815290516001600160a01b038716917f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1919081900360200190a26001600160a01b038516600090815260208190526040902054610f2b908263ffffffff610cdd16565b6001600160a01b03861660009081526020819052604090205550600191505092915050565b610f6160078263ffffffff61118c16565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b600082821115610fa757600080fd5b50900390565b6000610c0b3384845b6001600160a01b038216610fc957600080fd5b6001600160a01b038316600090815260208190526040902054610ff2908263ffffffff610f9816565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611027908263ffffffff610cdd16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6001600160a01b0383166000908152602081905260408120546110aa908463ffffffff610f9816565b6001600160a01b0385166000818152602081815260408083209490945560088152838220845180860186528781528083018981528254600181810185559386529484902091516002909502909101938455519201919091558251868152908101859052825191927f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b92918290030190a25060019392505050565b6001600160a01b03811661115757600080fd5b6111618282610cef565b61116a57600080fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b03811661119f57600080fd5b6111a98282610cef565b156111b357600080fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b815481835581811115611204576002028160020283600052602060002091820191016112049190611209565b505050565b61059091905b80821115611229576000808255600182015560020161120f565b509056fea265627a7a723158203373703f97db3c1ee42da9776d73799a76a98b9494625594ab209fd5dc00892d64736f6c63430005110032
Deployed Bytecode Sourcemap
12334:3043:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12334:3043:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11928:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11928:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7750:244;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7750:244:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5909:91;;;:::i;:::-;;;;;;;;;;;;;;;;13411:235;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13411:235:0;;;;;;;;;;;;;;;;;:::i;3328:193::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3328:193:0;-1:-1:-1;;;;;3328:193:0;;:::i;12244:83::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9281:323;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9281:323:0;;;;;;;;:::i;4266:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4266:109:0;-1:-1:-1;;;;;4266:109:0;;:::i;4483:97::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4483:97:0;-1:-1:-1;;;;;4483:97:0;;:::i;:::-;;4588:77;;;:::i;12799:376::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12799:376:0;-1:-1:-1;;;;;12799:376:0;;:::i;3682:181::-;;;:::i;13892:219::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13892:219:0;;;;;;;;:::i;4383:92::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4383:92:0;-1:-1:-1;;;;;4383:92:0;;:::i;2853:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;2853:20:0;;;;;;;;;;;;;;12078:87;;;:::i;10124:333::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10124:333:0;;;;;;;;:::i;13183:220::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13183:220:0;;;;;;;;:::i;12474:51::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12474:51:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2880:23;;;:::i;6661:131::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6661:131:0;;;;;;;;;;:::i;13654:230::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13654:230:0;;;;;;;;;;;;;:::i;3529:145::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3529:145:0;-1:-1:-1;;;;;3529:145:0;;:::i;11928:83::-;11998:5;11991:12;;;;;;;;-1:-1:-1;;11991:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11965:13;;11991:12;;11998:5;;11991:12;;11998:5;11991:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11928:83;;:::o;7750:244::-;7815:4;-1:-1:-1;;;;;7840:21:0;;7832:30;;;;;;7884:10;7875:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;7875:29:0;;;;;;;;;;;;:37;;;7928:36;;;;;;;7875:29;;7884:10;7928:36;;;;;;;;;;;-1:-1:-1;7982:4:0;7750:244;;;;:::o;5909:91::-;5980:12;;5909:91;:::o;13411:235::-;-1:-1:-1;;;;;13511:18:0;;13490:4;13511:18;;;:12;:18;;;;;:25;:29;13507:79;;13557:17;13569:4;13557:11;:17::i;:::-;;13507:79;13603:35;13622:4;13628:2;13632:5;13603:18;:35::i;:::-;13596:42;13411:235;-1:-1:-1;;;;13411:235:0:o;3328:193::-;3415:5;;3383:4;;-1:-1:-1;;;;;3404:16:0;;;3415:5;;;;;3404:16;3400:114;;;-1:-1:-1;3444:4:0;3437:11;;3400:114;-1:-1:-1;3497:5:0;3400:114;3328:193;;;:::o;12244:83::-;12310:9;;;;12244:83;:::o;9281:323::-;9361:4;-1:-1:-1;;;;;9386:21:0;;9378:30;;;;;;9462:10;9453:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;9453:29:0;;;;;;;;;;:45;;9487:10;9453:45;:33;:45;:::i;:::-;9430:10;9421:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;9421:29:0;;;;;;;;;;;;:77;;;9514:60;;;;;;9421:29;;9514:60;;;;;;;;;;;-1:-1:-1;9592:4:0;9281:323;;;;:::o;4266:109::-;4322:4;4346:21;:8;4359:7;4346:21;:12;:21;:::i;:::-;4339:28;4266:109;-1:-1:-1;;4266:109:0:o;4483:97::-;3156:5;;;;;-1:-1:-1;;;;;3156:5:0;3142:10;:19;3134:28;;;;;;4550:22;4564:7;4550:13;:22::i;:::-;4483:97;:::o;4588:77::-;4632:25;4646:10;4632:13;:25::i;:::-;4588:77::o;12799:376::-;12854:7;12874:20;12897:22;12913:5;12897:15;:22::i;:::-;-1:-1:-1;;;;;12934:19:0;;12962:1;12934:19;;;:12;:19;;;;;:26;12874:45;;-1:-1:-1;12934:29:0;12930:206;;12984:6;12980:145;-1:-1:-1;;;;;12996:19:0;;;;;;:12;:19;;;;;:26;12994:28;;12980:145;;;-1:-1:-1;;;;;13078:19:0;;;;;;:12;:19;;;;;:22;;13061:48;;13078:19;13098:1;;13078:22;;;;;;;;;;;;;;;;:30;;;13061:12;:16;;:48;;;;:::i;:::-;13046:63;-1:-1:-1;13023:3:0;;12980:145;;;;13155:12;12799:376;-1:-1:-1;;12799:376:0:o;3682:181::-;3737:4;3233:10;3225:33;;;;;;3291:8;;-1:-1:-1;;;;;3291:8:0;3277:10;:22;3269:31;;;;;;3787:8;;3780:5;;3759:37;;-1:-1:-1;;;;;3787:8:0;;;;;3780:5;;;;;;;3759:37;;3787:8;;3759:37;3815:8;;;3807:5;:16;;-1:-1:-1;;;;;;3807:16:0;3815:8;-1:-1:-1;;;;;3815:8:0;;3807:16;;;;-1:-1:-1;;;;;;3834:21:0;;;3682:181;:::o;13892:219::-;13964:4;4195:20;4204:10;4195:8;:20::i;:::-;:42;;;;4218:19;4226:10;4218:7;:19::i;:::-;4187:51;;;;;;-1:-1:-1;;;;;13990:20:0;;;;;;:12;:20;;;;;:27;:33;-1:-1:-1;13981:70:0;;;;;-1:-1:-1;;;13981:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14062:19;14070:6;14077:3;14062:7;:19::i;:::-;-1:-1:-1;14099:4:0;;13892:219;-1:-1:-1;;;13892:219:0:o;4383:92::-;4195:20;4204:10;4195:8;:20::i;:::-;:42;;;;4218:19;4226:10;4218:7;:19::i;:::-;4187:51;;;;;;4448:19;4459:7;4448:10;:19::i;2853:20::-;;;;;;-1:-1:-1;;;;;2853:20:0;;:::o;12078:87::-;12150:7;12143:14;;;;;;;;-1:-1:-1;;12143:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12117:13;;12143:14;;12150:7;;12143:14;;12150:7;12143:14;;;;;;;;;;;;;;;;;;;;;;;;10124:333;10209:4;-1:-1:-1;;;;;10234:21:0;;10226:30;;;;;;10310:10;10301:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;10301:29:0;;;;;;;;;;:50;;10335:15;10301:50;:33;:50;:::i;13183:220::-;13278:10;13244:4;13265:24;;;:12;:24;;;;;:31;:35;13261:92;;13318:23;13330:10;13318:11;:23::i;:::-;;13261:92;13370:25;13385:2;13389:5;13370:14;:25::i;:::-;13363:32;13183:220;-1:-1:-1;;;13183:220:0:o;12474:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12474:51:0;-1:-1:-1;12474:51:0;:::o;2880:23::-;;;-1:-1:-1;;;;;2880:23:0;;:::o;6661:131::-;-1:-1:-1;;;;;6760:15:0;;;6733:7;6760:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;6661:131::o;13654:230::-;13759:4;4195:20;4204:10;4195:8;:20::i;:::-;:42;;;;4218:19;4226:10;4218:7;:19::i;:::-;4187:51;;;;;;13776:36;13786:10;13798:6;13806:5;13776:9;:36::i;:::-;13823:31;13829:6;13836:5;13842:11;13823:5;:31::i;:::-;-1:-1:-1;13872:4:0;;13654:230;-1:-1:-1;;;;13654:230:0:o;3529:145::-;3156:5;;;;;-1:-1:-1;;;;;3156:5:0;3142:10;:19;3134:28;;;;;;-1:-1:-1;;;;;3611:23:0;;3603:32;;;;;;3646:8;:20;;-1:-1:-1;;;;;;3646:20:0;-1:-1:-1;;;;;3646:20:0;;;;;;;;;;3529:145::o;14944:430::-;14998:4;;15015:330;-1:-1:-1;;;;;15041:20:0;;;;;;:12;:20;;;;;:27;15035:33;;15015:330;;;-1:-1:-1;;;;;15098:20:0;;;;;;:12;:20;;;;;:25;;15140:3;;15098:20;15119:3;;15098:25;;;;;;;;;;;;;;;;:38;;;:45;15094:240;;15246:20;15254:6;15262:3;15246:7;:20::i;:::-;15242:77;;;-1:-1:-1;;15292:7:0;15242:77;15071:5;;15015:330;;;-1:-1:-1;15362:4:0;;14944:430;-1:-1:-1;;14944:430:0:o;8467:299::-;-1:-1:-1;;;;;8592:14:0;;8546:4;8592:14;;;:8;:14;;;;;;;;8607:10;8592:26;;;;;;;;:37;;8623:5;8592:37;:30;:37;:::i;:::-;-1:-1:-1;;;;;8563:14:0;;;;;;:8;:14;;;;;;;;8578:10;8563:26;;;;;;;:66;8640:26;8572:4;8656:2;8660:5;8640:9;:26::i;:::-;-1:-1:-1;;;;;8682:54:0;;8709:14;;;;:8;:14;;;;;;;;8697:10;8709:26;;;;;;;;;;;8682:54;;;;;;;8697:10;;8682:54;;;;;;;;;;;;-1:-1:-1;8754:4:0;8467:299;;;;;:::o;1511:150::-;1569:7;1601:5;;;1625:6;;;;1617:15;;;;;2657:165;2729:4;-1:-1:-1;;;;;2754:21:0;;2746:30;;;;;;-1:-1:-1;;;;;;2794:20:0;:11;:20;;;;;;;;;;;;;;;2657:165::o;4803:130::-;4863:24;:8;4879:7;4863:24;:15;:24;:::i;:::-;4903:22;;-1:-1:-1;;;;;4903:22:0;;;;;;;;4803:130;:::o;6216:106::-;-1:-1:-1;;;;;6298:16:0;6271:7;6298:16;;;;;;;;;;;;6216:106::o;14424:512::-;-1:-1:-1;;;;;14532:20:0;;14487:4;14532:20;;;:12;:20;;;;;:25;;14487:4;;14532:20;14553:3;;14532:25;;;;;;;;;;;;;;14592:16;14532:25;;;;;14592:16;;;;-1:-1:-1;;;;;14628:20:0;;;;:12;:20;;;;;;;:25;;14532;;-1:-1:-1;14628:20:0;14649:3;;14628:25;;;;;;;;;;;;;;;;;;;;;14621:32;;;;;;;;;;-1:-1:-1;;;;;14692:20:0;;;;:12;:20;;;;;;;14713:27;;14692:20;;14713:34;;:27;:34;:31;:34;:::i;:::-;14692:56;;;;;;;;;;;;;;;;;;14664:12;:20;14677:6;-1:-1:-1;;;;;14664:20:0;-1:-1:-1;;;;;14664:20:0;;;;;;;;;;;;14685:3;14664:25;;;;;;;;;;;;;;;;:84;;:25;;;;;:84;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14759:20:0;;;;:12;:20;;;;;;:31;;-1:-1:-1;;14759:31:0;;;;;;:::i;:::-;-1:-1:-1;14808:29:0;;;;;;;;-1:-1:-1;;;;;14808:29:0;;;;;;;;;;;;;-1:-1:-1;;;;;14868:17:0;;:9;:17;;;;;;;;;;;:36;;14890:13;14868:36;:21;:36;:::i;:::-;-1:-1:-1;;;;;14848:17:0;;:9;:17;;;;;;;;;;:56;-1:-1:-1;14924:4:0;;-1:-1:-1;;14424:512:0;;;;:::o;4673:122::-;4730:21;:8;4743:7;4730:21;:12;:21;:::i;:::-;4767:20;;-1:-1:-1;;;;;4767:20:0;;;;;;;;4673:122;:::o;1275:150::-;1333:7;1366:1;1361;:6;;1353:15;;;;;;-1:-1:-1;1391:5:0;;;1275:150::o;6963:140::-;7024:4;7041:32;7051:10;7063:2;7067:5;10679:262;-1:-1:-1;;;;;10767:16:0;;10759:25;;;;;;-1:-1:-1;;;;;10815:15:0;;:9;:15;;;;;;;;;;;:26;;10835:5;10815:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;10797:15:0;;;:9;:15;;;;;;;;;;;:44;;;;10868:13;;;;;;;:24;;10886:5;10868:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;10852:13:0;;;:9;:13;;;;;;;;;;;;:40;;;;10908:25;;;;;;;10852:13;;10908:25;;;;;;;;;;;;;10679:262;;;:::o;14119:297::-;-1:-1:-1;;;;;14240:17:0;;14203:4;14240:17;;;;;;;;;;;:28;;14262:5;14240:28;:21;:28;:::i;:::-;-1:-1:-1;;;;;14220:17:0;;:9;:17;;;;;;;;;;;:48;;;;14279:12;:20;;;;;14306:28;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;14279:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;14354:32;;;;;;;;;;;;;14220:17;;14354:32;;;;;;;;;-1:-1:-1;14404:4:0;14119:297;;;;;:::o;2374:189::-;-1:-1:-1;;;;;2454:21:0;;2446:30;;;;;;2495:18;2499:4;2505:7;2495:3;:18::i;:::-;2487:27;;;;;;-1:-1:-1;;;;;2527:20:0;2550:5;2527:20;;;;;;;;;;;:28;;-1:-1:-1;;2527:28:0;;;2374:189::o;2109:186::-;-1:-1:-1;;;;;2186:21:0;;2178:30;;;;;;2228:18;2232:4;2238:7;2228:3;:18::i;:::-;2227:19;2219:28;;;;;;-1:-1:-1;;;;;2260:20:0;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;2260:27:0;2283:4;2260:27;;;2109:186::o;12334:3043::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://3373703f97db3c1ee42da9776d73799a76a98b9494625594ab209fd5dc00892d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.