Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 21 from a total of 21 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 12887695 | 1281 days ago | IN | 0 ETH | 0.00064718 | ||||
Transfer | 12887540 | 1281 days ago | IN | 0 ETH | 0.00088252 | ||||
Approve Mint | 12882340 | 1281 days ago | IN | 0 ETH | 0.00139094 | ||||
Propose Mint | 12882332 | 1281 days ago | IN | 0 ETH | 0.00060119 | ||||
Set Proposer | 12882327 | 1281 days ago | IN | 0 ETH | 0.00031274 | ||||
Set Approver | 12882309 | 1281 days ago | IN | 0 ETH | 0.00102715 | ||||
Set Mint Split H... | 12882289 | 1281 days ago | IN | 0 ETH | 0.00039562 | ||||
Approve Mint | 12881576 | 1282 days ago | IN | 0 ETH | 0.00267633 | ||||
Set Mint Split H... | 12881545 | 1282 days ago | IN | 0 ETH | 0.00061677 | ||||
Set Mint Split H... | 12881530 | 1282 days ago | IN | 0 ETH | 0.00051891 | ||||
Set Mint Split H... | 12881523 | 1282 days ago | IN | 0 ETH | 0.00047971 | ||||
Set Mint Split H... | 12881523 | 1282 days ago | IN | 0 ETH | 0.00047971 | ||||
Set Mint Split H... | 12881523 | 1282 days ago | IN | 0 ETH | 0.00051891 | ||||
Set Mint Split H... | 12881523 | 1282 days ago | IN | 0 ETH | 0.00047971 | ||||
Set Mint Split H... | 12881511 | 1282 days ago | IN | 0 ETH | 0.00044994 | ||||
Set Mint Split H... | 12881506 | 1282 days ago | IN | 0 ETH | 0.00049684 | ||||
Set Mint Split H... | 12881505 | 1282 days ago | IN | 0 ETH | 0.00049666 | ||||
Set Approver | 12881449 | 1282 days ago | IN | 0 ETH | 0.00102715 | ||||
Propose Mint | 12881354 | 1282 days ago | IN | 0 ETH | 0.00069369 | ||||
Set Approver | 12881012 | 1282 days ago | IN | 0 ETH | 0.00060695 | ||||
Set Proposer | 12881008 | 1282 days ago | IN | 0 ETH | 0.00060752 |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
HiToken
Compiler Version
v0.4.26+commit.4563c3fc
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT pragma solidity ^0.4.23; import './SafeMath.sol'; /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function transferOwnership(address _newOwner) public onlyOwner { _transferOwnership(_newOwner); } /** * @dev Transfers control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function _transferOwnership(address _newOwner) internal { require(_newOwner != address(0)); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } } /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is Ownable { event Pause(); event Unpause(); bool public paused = false; /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!paused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(paused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() onlyOwner whenNotPaused public { paused = true; emit Pause(); } /** * @dev called by the owner to unpauseunpause, returns to normal state */ function unpause() onlyOwner whenPaused public { paused = false; emit Unpause(); } } /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { // function allowance(address owner, address spender) public view returns (uint256); // function transferFrom(address from, address to, uint256 value) public returns (bool); // function approve(address spender, uint256 value) public returns (bool); // event Approval( // address indexed owner, // address indexed spender, // uint256 value // ); } /** * @title Basic token * @dev Basic version of StandardToken, with no allowances. */ contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; uint256 totalSupply_; /** * @dev total number of tokens in existence */ function totalSupply() public view returns (uint256) { return totalSupply_; } /** * @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) { require(_to != address(0)); require(_value <= balances[msg.sender]); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the 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]; } } /** * @title Standard ERC20 token * @dev Implementation of the basic standard token. * @dev https://github.com/ethereum/EIPs/issues/20 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is ERC20, BasicToken { // mapping (address => mapping (address => uint256)) internal allowed; // /** // * @dev Transfer tokens from one address to another // * @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) { // require(_to != address(0)); // require(_value <= balances[_from]); // require(_value <= allowed[_from][msg.sender]); // balances[_from] = balances[_from].sub(_value); // balances[_to] = balances[_to].add(_value); // allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); // emit Transfer(_from, _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((_value == 0) || (allowed[msg.sender][_spender] == 0)); // allowed[msg.sender][_spender] = _value; // emit Approval(msg.sender, _spender, _value); // return true; // } // /** // * @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 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 // * @param _spender The address which will spend the funds. // * @param _addedValue The amount of tokens to increase the allowance by. // */ // function increaseApproval(address _spender, uint256 _addedValue) public returns (bool) { // 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 // * @param _spender The address which will spend the funds. // * @param _subtractedValue The amount of tokens to decrease the allowance by. // */ // function decreaseApproval(address _spender, uint256 _subtractedValue) public returns (bool) { // uint256 oldValue = allowed[msg.sender][_spender]; // if (_subtractedValue > oldValue) { // allowed[msg.sender][_spender] = 0; // } else { // allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); // } // emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); // return true; // } } /** * @title Pausable token * @dev StandardToken modified with pausable transfers. **/ contract PausableToken is StandardToken, Pausable { function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) { return super.transfer(_to, _value); } // function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) { // return super.transferFrom(_from, _to, _value); // } // function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) { // return super.approve(_spender, _value); // } // function increaseApproval(address _spender, uint256 _addedValue) public whenNotPaused returns (bool success) { // return super.increaseApproval(_spender, _addedValue); // } // function decreaseApproval(address _spender, uint256 _subtractedValue) public whenNotPaused returns (bool success) { // return super.decreaseApproval(_spender, _subtractedValue); // } } /** * @title Frozenable Token * @dev Illegal address that can be frozened. */ contract FrozenableToken is Ownable { mapping (address => bool) public Approvers; mapping (address => bool) public frozenAccount; event FrozenFunds(address indexed to, bool frozen); modifier whenNotFrozen(address _who) { require(!frozenAccount[msg.sender] && !frozenAccount[_who]); _; } function setApprover(address _wallet, bool _approve) public { require(msg.sender == owner); Approvers[_wallet] = _approve; if (!_approve) delete Approvers[_wallet]; } function freezeAccount(address _to, bool _freeze) public { require(true == Approvers[msg.sender]); require(_to != address(0)); frozenAccount[_to] = _freeze; emit FrozenFunds(_to, _freeze); } } /** *------------------Mintable token---------------------------- */ contract MintableToken is StandardToken, Ownable { event Mint(address indexed to, uint256 amount); /** * @dev Mint method * @param _to newly minted tokens will be sent to this address * @param _amount amount to mint * @return A boolean that indicates if the operation was successful. */ function _mint(address _to, uint256 _amount) internal returns (bool){ totalSupply_ = totalSupply_.add(_amount); balances[_to] = balances[_to].add(_amount); emit Mint(_to, _amount); emit Transfer(address(0), _to, _amount); return true; } } /** * @title HiToken Token * @dev Global digital painting asset platform token. * @author HiToken */ contract HiToken is PausableToken, FrozenableToken, MintableToken { using SafeMath for uint256; string public name = "hi Dollars for test"; string public symbol = "BI"; uint256 public decimals = 18; // uint256 INITIAL_SUPPLY = 10 *(10 ** 5) * (10 ** uint256(decimals)); uint256 INITIAL_SUPPLY = 0; uint totalHolders_ = 6; // total number is fixed, wont change in future // but holders address can be updated thru setMintSplitHolder method mapping (uint => address) public holders; mapping (uint => uint256) public MintSplitHolderRatios; //index -> ratio boosted by 10000 mapping (address => bool) public Proposers; mapping (address => uint256) public Proposals; //address -> mintAmount /** * @dev Initializes the total release */ constructor() public { holders[0] = 0xb660539dd01A78ACB3c7CF77BfcCE735081ec004; //HI_LID holders[1] = 0x8376EEF57D86A8c1DFEE8E91E75912e361A940e0; //HI_EG holders[2] = 0x572aB5eC71354Eb80e6D18e394b3e71BA8e282F5; //HI_NLTI holders[3] = 0x93aeC0ADc392C09666B4d56654F39a375AEbD4C1; //HI_CR holders[4] = 0xFb3BEb5B1258e438982956c9f023d4F7bD683E4E; //HI_FT holders[5] = 0xBF990D24F7167b97b836457d380ACCdCb1782201; //HI_FR MintSplitHolderRatios[0] = 2720; //27.2% MintSplitHolderRatios[1] = 1820; //18.2% MintSplitHolderRatios[2] = 1820; //18.2% MintSplitHolderRatios[3] = 1360; //13.6% MintSplitHolderRatios[4] = 1360; //13.6% MintSplitHolderRatios[5] = 920; //9.2%, remaining totalSupply_ = INITIAL_SUPPLY; balances[msg.sender] = totalSupply_; emit Transfer(address(0), msg.sender, totalSupply_); } /** * if ether is sent to this address, send it back. */ function() public payable { revert(); } /** * @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 whenNotFrozen(_to) returns (bool) { return super.transfer(_to, _value); } // /** // * @dev Transfer tokens from one address to another // * @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 whenNotFrozen(_from) returns (bool) { // return super.transferFrom(_from, _to, _value); // } function setProposer(address _wallet, bool _on) public{ require(msg.sender == owner); Proposers[_wallet] = _on; if (!_on) delete Proposers[_wallet]; } /** * to update an split holder ratio at the index * index ranges from 0..totalHolders -1 */ function setMintSplitHolder(uint index, address _wallet, uint64 _ratio) public returns (bool) { require(msg.sender == owner); if (index > totalHolders_ - 1) return false; holders[ index ] = _wallet; MintSplitHolderRatios[ index ] = _ratio; return true; } /** * @dev propose to mint * @param _amount amount to mint * @return mint propose ID */ function proposeMint(uint256 _amount) public returns(bool) { require(true == Proposers[msg.sender]); Proposals[msg.sender] = _amount; //mint once for a propoer at a time otherwise would be overwritten return true; } function approveMint(address _proposer, uint256 _amount, bool _approve) public returns(bool) { require( Approvers[msg.sender], "None-approver not allowed" ); if (!_approve) { delete Proposals[_proposer]; return true; } require( _amount > 0, "zero amount not allowed" ); require( totalHolders_ > 0, "Err: none account holder" ); require( Proposals[_proposer] >= _amount, "Over-approve mint amount not allowed" ); uint256 unsplitted = _amount; address _to; for (uint8 i = 0; i < totalHolders_ - 1; i++) { _to = holders[i]; uint256 _amt = _amount.mul(MintSplitHolderRatios[i]).div(10000); unsplitted -= _amt; _mint(_to, _amt); } _to = holders[totalHolders_ - 1]; _mint(_to, unsplitted); //for the last holder in the list Proposals[_proposer] -= _amount; if (Proposals[_proposer] == 0) delete Proposals[_proposer]; return true; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.4.23; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) { // Gas optimization: this is cheaper than asserting 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (_a == 0) { return 0; } c = _a * _b; assert(c / _a == _b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 _a, uint256 _b) internal pure returns (uint256) { // assert(_b > 0); // Solidity automatically throws when dividing by 0 // uint256 c = _a / _b; // assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold return _a / _b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"holders","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"Proposals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"Approvers","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_proposer","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_approve","type":"bool"}],"name":"approveMint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"MintSplitHolderRatios","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"Proposers","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"proposeMint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_wallet","type":"address"},{"name":"_approve","type":"bool"}],"name":"setApprover","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_wallet","type":"address"},{"name":"_on","type":"bool"}],"name":"setProposer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"},{"name":"_wallet","type":"address"},{"name":"_ratio","type":"uint64"}],"name":"setMintSplitHolder","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]
Contract Creation Code
6002805460a060020a60ff021916905560c0604052601360808190527f686920446f6c6c61727320666f7220746573740000000000000000000000000060a09081526200005091600591906200036a565b506040805180820190915260028082527f4249000000000000000000000000000000000000000000000000000000000000602090920191825262000097916006916200036a565b50601260075560006008556006600955348015620000b457600080fd5b5060028054600160a060020a0319908116339081179092557f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e38054821673b660539dd01a78acb3c7cf77bfcce735081ec0041790557fbbc70db1b6c7afd11e79c0fb0051300458f1a3acb8ee9789d9b6b26c61ad9bc780548216738376eef57d86a8c1dfee8e91e75912e361a940e01790557fbff4442b8ed600beeb8e26b1279a0f0d14c6edfaec26d968ee13c86f7d4c2ba88054821673572ab5ec71354eb80e6d18e394b3e71ba8e282f51790557fa856840544dc26124927add067d799967eac11be13e14d82cc281ea46fa39759805482167393aec0adc392c09666b4d56654f39a375aebd4c11790557fe1eb2b2161a492c07c5a334e48012567cba93ec021043f53c1955516a3c5a8418054821673fb3beb5b1258e438982956c9f023d4f7bd683e4e1790557ff35035bc2b01d44bd35a1dcdc552315cffb73da35cfd60570b7b777f98036f9f805490911673bf990d24f7167b97b836457d380accdcb1782201179055610aa07fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f765561071c7f72c6bfb7988af3a1efa6568f02a999bc52252641c659d85961ca3d372b57d5cf8190557fa50eece07c7db1631545c0069bd8f5f54d5935e215d59097edf258a44ba91634556105507f64c15cc42be7899b001f818cf4433057002112c418d1d3a67cd5cb453051d33e8190557f12d0c11577e2f0950f57c455c117796550b79f444811db8ba2f69c57b646c784556103987febae6141bae5521e99e0a8d610356b0f501fea54980b59c84841db43ba7204f455600854600181905560008281526020818152604080832084905580519384525191927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a36200040f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003ad57805160ff1916838001178555620003dd565b82800160010185558215620003dd579182015b82811115620003dd578251825591602001919060010190620003c0565b50620003eb929150620003ef565b5090565b6200040c91905b80821115620003eb5760008155600101620003f6565b90565b610fa2806200041f6000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461013757806318160ddd146101c15780632a11ced0146101e85780632fa7b6841461021c578063313ce5671461023d5780633f4ba83a1461025257806346f24906146102695780635c975abb1461029e57806370a08231146102b3578063768916e7146102d457806378e2ffd2146102fd5780638456cb59146103155780638da5cb5b1461032a57806395d89b411461033f578063a9059cbb14610354578063ac3dcf8714610378578063b414d4b614610399578063b6cf146c146103ba578063d76fd2e7146103d2578063e724529c146103f8578063e9ed9b641461041e578063f0975d2814610444578063f2fde38b14610475575b600080fd5b34801561014357600080fd5b5061014c610496565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101d6610524565b60408051918252519081900360200190f35b3480156101f457600080fd5b5061020060043561052a565b60408051600160a060020a039092168252519081900360200190f35b34801561022857600080fd5b506101d6600160a060020a0360043516610545565b34801561024957600080fd5b506101d6610557565b34801561025e57600080fd5b5061026761055d565b005b34801561027557600080fd5b5061028a600160a060020a03600435166105d5565b604080519115158252519081900360200190f35b3480156102aa57600080fd5b5061028a6105ea565b3480156102bf57600080fd5b506101d6600160a060020a03600435166105fa565b3480156102e057600080fd5b5061028a600160a060020a03600435166024356044351515610615565b34801561030957600080fd5b506101d66004356108f9565b34801561032157600080fd5b5061026761090b565b34801561033657600080fd5b50610200610988565b34801561034b57600080fd5b5061014c610997565b34801561036057600080fd5b5061028a600160a060020a03600435166024356109f2565b34801561038457600080fd5b5061028a600160a060020a0360043516610a4a565b3480156103a557600080fd5b5061028a600160a060020a0360043516610a5f565b3480156103c657600080fd5b5061028a600435610a74565b3480156103de57600080fd5b50610267600160a060020a03600435166024351515610aab565b34801561040457600080fd5b50610267600160a060020a03600435166024351515610b12565b34801561042a57600080fd5b50610267600160a060020a03600435166024351515610ba8565b34801561045057600080fd5b5061028a600435600160a060020a036024351667ffffffffffffffff60443516610c0c565b34801561048157600080fd5b50610267600160a060020a0360043516610c91565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561051c5780601f106104f15761010080835404028352916020019161051c565b820191906000526020600020905b8154815290600101906020018083116104ff57829003601f168201915b505050505081565b60015490565b600a60205260009081526040902054600160a060020a031681565b600d6020526000908152604090205481565b60075481565b600254600160a060020a0316331461057457600080fd5b60025460a060020a900460ff16151561058c57600080fd5b6002805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60036020526000908152604090205460ff1681565b60025460a060020a900460ff1681565b600160a060020a031660009081526020819052604090205490565b33600090815260036020526040812054819081908190819060ff161515610686576040805160e560020a62461bcd02815260206004820152601960248201527f4e6f6e652d617070726f766572206e6f7420616c6c6f77656400000000000000604482015290519081900360640190fd5b8515156106af57600160a060020a0388166000908152600d6020526040812055600194506108ee565b60008711610707576040805160e560020a62461bcd02815260206004820152601760248201527f7a65726f20616d6f756e74206e6f7420616c6c6f776564000000000000000000604482015290519081900360640190fd5b600954600010610761576040805160e560020a62461bcd02815260206004820152601860248201527f4572723a206e6f6e65206163636f756e7420686f6c6465720000000000000000604482015290519081900360640190fd5b600160a060020a0388166000908152600d60205260409020548711156107f6576040805160e560020a62461bcd028152602060048201526024808201527f4f7665722d617070726f7665206d696e7420616d6f756e74206e6f7420616c6c60448201527f6f77656400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b869350600091505b6001600954038260ff16101561087c5760ff82166000908152600a6020908152604080832054600b90925290912054600160a060020a03909116935061085f9061271090610853908a9063ffffffff610cb416565b9063ffffffff610ce316565b905080840393506108708382610cf8565b506001909101906107fe565b600954600019016000908152600a6020526040902054600160a060020a031692506108a78385610cf8565b50600160a060020a0388166000908152600d6020526040902080548890039081905515156108e957600160a060020a0388166000908152600d60205260408120555b600194505b505050509392505050565b600b6020526000908152604090205481565b600254600160a060020a0316331461092257600080fd5b60025460a060020a900460ff161561093957600080fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600254600160a060020a031681565b6006805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561051c5780601f106104f15761010080835404028352916020019161051c565b33600090815260046020526040812054839060ff16158015610a2d5750600160a060020a03811660009081526004602052604090205460ff16155b1515610a3857600080fd5b610a428484610dd4565b949350505050565b600c6020526000908152604090205460ff1681565b60046020526000908152604090205460ff1681565b336000908152600c602052604081205460ff161515600114610a9557600080fd5b50336000908152600d6020526040902055600190565b600254600160a060020a03163314610ac257600080fd5b600160a060020a0382166000908152600360205260409020805460ff1916821515908117909155610b0e57600160a060020a0382166000908152600360205260409020805460ff191690555b5050565b3360009081526003602052604090205460ff161515600114610b3357600080fd5b600160a060020a0382161515610b4857600080fd5b600160a060020a038216600081815260046020908152604091829020805460ff1916851515908117909155825190815291517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a25050565b600254600160a060020a03163314610bbf57600080fd5b600160a060020a0382166000908152600c60205260409020805460ff1916821515908117909155610b0e5750600160a060020a03166000908152600c60205260409020805460ff19169055565b600254600090600160a060020a03163314610c2657600080fd5b600160095403841115610c3b57506000610c8a565b506000838152600a60209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038716179055600b909152902067ffffffffffffffff8216905560015b9392505050565b600254600160a060020a03163314610ca857600080fd5b610cb181610df8565b50565b6000821515610cc557506000610cdd565b50818102818382811515610cd557fe5b0414610cdd57fe5b92915050565b60008183811515610cf057fe5b049392505050565b600154600090610d0e908363ffffffff610e7616565b600155600160a060020a038316600090815260208190526040902054610d3a908363ffffffff610e7616565b600160a060020a03841660008181526020818152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b60025460009060a060020a900460ff1615610dee57600080fd5b610c8a8383610e83565b600160a060020a0381161515610e0d57600080fd5b600254604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b81810182811015610cdd57fe5b6000600160a060020a0383161515610e9a57600080fd5b33600090815260208190526040902054821115610eb657600080fd5b33600090815260208190526040902054610ed6908363ffffffff610f6416565b3360009081526020819052604080822092909255600160a060020a03851681522054610f08908363ffffffff610e7616565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b600082821115610f7057fe5b509003905600a165627a7a723058200ee32e613a40ab002d5eadf8c97576bdf48995bdb2c51fab9ac95162eefce5140029
Deployed Bytecode
0x6080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461013757806318160ddd146101c15780632a11ced0146101e85780632fa7b6841461021c578063313ce5671461023d5780633f4ba83a1461025257806346f24906146102695780635c975abb1461029e57806370a08231146102b3578063768916e7146102d457806378e2ffd2146102fd5780638456cb59146103155780638da5cb5b1461032a57806395d89b411461033f578063a9059cbb14610354578063ac3dcf8714610378578063b414d4b614610399578063b6cf146c146103ba578063d76fd2e7146103d2578063e724529c146103f8578063e9ed9b641461041e578063f0975d2814610444578063f2fde38b14610475575b600080fd5b34801561014357600080fd5b5061014c610496565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101d6610524565b60408051918252519081900360200190f35b3480156101f457600080fd5b5061020060043561052a565b60408051600160a060020a039092168252519081900360200190f35b34801561022857600080fd5b506101d6600160a060020a0360043516610545565b34801561024957600080fd5b506101d6610557565b34801561025e57600080fd5b5061026761055d565b005b34801561027557600080fd5b5061028a600160a060020a03600435166105d5565b604080519115158252519081900360200190f35b3480156102aa57600080fd5b5061028a6105ea565b3480156102bf57600080fd5b506101d6600160a060020a03600435166105fa565b3480156102e057600080fd5b5061028a600160a060020a03600435166024356044351515610615565b34801561030957600080fd5b506101d66004356108f9565b34801561032157600080fd5b5061026761090b565b34801561033657600080fd5b50610200610988565b34801561034b57600080fd5b5061014c610997565b34801561036057600080fd5b5061028a600160a060020a03600435166024356109f2565b34801561038457600080fd5b5061028a600160a060020a0360043516610a4a565b3480156103a557600080fd5b5061028a600160a060020a0360043516610a5f565b3480156103c657600080fd5b5061028a600435610a74565b3480156103de57600080fd5b50610267600160a060020a03600435166024351515610aab565b34801561040457600080fd5b50610267600160a060020a03600435166024351515610b12565b34801561042a57600080fd5b50610267600160a060020a03600435166024351515610ba8565b34801561045057600080fd5b5061028a600435600160a060020a036024351667ffffffffffffffff60443516610c0c565b34801561048157600080fd5b50610267600160a060020a0360043516610c91565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561051c5780601f106104f15761010080835404028352916020019161051c565b820191906000526020600020905b8154815290600101906020018083116104ff57829003601f168201915b505050505081565b60015490565b600a60205260009081526040902054600160a060020a031681565b600d6020526000908152604090205481565b60075481565b600254600160a060020a0316331461057457600080fd5b60025460a060020a900460ff16151561058c57600080fd5b6002805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60036020526000908152604090205460ff1681565b60025460a060020a900460ff1681565b600160a060020a031660009081526020819052604090205490565b33600090815260036020526040812054819081908190819060ff161515610686576040805160e560020a62461bcd02815260206004820152601960248201527f4e6f6e652d617070726f766572206e6f7420616c6c6f77656400000000000000604482015290519081900360640190fd5b8515156106af57600160a060020a0388166000908152600d6020526040812055600194506108ee565b60008711610707576040805160e560020a62461bcd02815260206004820152601760248201527f7a65726f20616d6f756e74206e6f7420616c6c6f776564000000000000000000604482015290519081900360640190fd5b600954600010610761576040805160e560020a62461bcd02815260206004820152601860248201527f4572723a206e6f6e65206163636f756e7420686f6c6465720000000000000000604482015290519081900360640190fd5b600160a060020a0388166000908152600d60205260409020548711156107f6576040805160e560020a62461bcd028152602060048201526024808201527f4f7665722d617070726f7665206d696e7420616d6f756e74206e6f7420616c6c60448201527f6f77656400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b869350600091505b6001600954038260ff16101561087c5760ff82166000908152600a6020908152604080832054600b90925290912054600160a060020a03909116935061085f9061271090610853908a9063ffffffff610cb416565b9063ffffffff610ce316565b905080840393506108708382610cf8565b506001909101906107fe565b600954600019016000908152600a6020526040902054600160a060020a031692506108a78385610cf8565b50600160a060020a0388166000908152600d6020526040902080548890039081905515156108e957600160a060020a0388166000908152600d60205260408120555b600194505b505050509392505050565b600b6020526000908152604090205481565b600254600160a060020a0316331461092257600080fd5b60025460a060020a900460ff161561093957600080fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600254600160a060020a031681565b6006805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561051c5780601f106104f15761010080835404028352916020019161051c565b33600090815260046020526040812054839060ff16158015610a2d5750600160a060020a03811660009081526004602052604090205460ff16155b1515610a3857600080fd5b610a428484610dd4565b949350505050565b600c6020526000908152604090205460ff1681565b60046020526000908152604090205460ff1681565b336000908152600c602052604081205460ff161515600114610a9557600080fd5b50336000908152600d6020526040902055600190565b600254600160a060020a03163314610ac257600080fd5b600160a060020a0382166000908152600360205260409020805460ff1916821515908117909155610b0e57600160a060020a0382166000908152600360205260409020805460ff191690555b5050565b3360009081526003602052604090205460ff161515600114610b3357600080fd5b600160a060020a0382161515610b4857600080fd5b600160a060020a038216600081815260046020908152604091829020805460ff1916851515908117909155825190815291517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a25050565b600254600160a060020a03163314610bbf57600080fd5b600160a060020a0382166000908152600c60205260409020805460ff1916821515908117909155610b0e5750600160a060020a03166000908152600c60205260409020805460ff19169055565b600254600090600160a060020a03163314610c2657600080fd5b600160095403841115610c3b57506000610c8a565b506000838152600a60209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038716179055600b909152902067ffffffffffffffff8216905560015b9392505050565b600254600160a060020a03163314610ca857600080fd5b610cb181610df8565b50565b6000821515610cc557506000610cdd565b50818102818382811515610cd557fe5b0414610cdd57fe5b92915050565b60008183811515610cf057fe5b049392505050565b600154600090610d0e908363ffffffff610e7616565b600155600160a060020a038316600090815260208190526040902054610d3a908363ffffffff610e7616565b600160a060020a03841660008181526020818152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b60025460009060a060020a900460ff1615610dee57600080fd5b610c8a8383610e83565b600160a060020a0381161515610e0d57600080fd5b600254604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b81810182811015610cdd57fe5b6000600160a060020a0383161515610e9a57600080fd5b33600090815260208190526040902054821115610eb657600080fd5b33600090815260208190526040902054610ed6908363ffffffff610f6416565b3360009081526020819052604080822092909255600160a060020a03851681522054610f08908363ffffffff610e7616565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b600082821115610f7057fe5b509003905600a165627a7a723058200ee32e613a40ab002d5eadf8c97576bdf48995bdb2c51fab9ac95162eefce5140029
Deployed Bytecode Sourcemap
11260:4674:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13127:8;;;11365:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11365:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;11365:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3455:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3455:83:0;;;;;;;;;;;;;;;;;;;;11763:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11763:40:0;;;;;;;;;-1:-1:-1;;;;;11763:40:0;;;;;;;;;;;;;;11952:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11952:45:0;-1:-1:-1;;;;;11952:45:0;;;;;11446:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11446:28:0;;;;2159:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2159:92:0;;;;;;9682:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9682:42:0;-1:-1:-1;;;;;9682:42:0;;;;;;;;;;;;;;;;;;;;;;;1562:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1562:26:0;;;;4215:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4215:99:0;-1:-1:-1;;;;;4215:99:0;;;;;14946:986;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14946:986:0;-1:-1:-1;;;;;14946:986:0;;;;;;;;;;;11809:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11809:54:0;;;;;1980:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1980:90:0;;;;299:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;299:20:0;;;;11413:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11413:27:0;;;;13313:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13313:139:0;-1:-1:-1;;;;;13313:139:0;;;;;;;11903:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11903:42:0;-1:-1:-1;;;;;11903:42:0;;;;;9732:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9732:46:0;-1:-1:-1;;;;;9732:46:0;;;;;14696:244;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14696:244:0;;;;;9968:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9968:206:0;-1:-1:-1;;;;;9968:206:0;;;;;;;;;10180:227;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10180:227:0;-1:-1:-1;;;;;10180:227:0;;;;;;;;;13961:190;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13961:190:0;-1:-1:-1;;;;;13961:190:0;;;;;;;;;14271:311;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14271:311:0;;;-1:-1:-1;;;;;14271:311:0;;;;;;;;;961:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;961:103:0;-1:-1:-1;;;;;961:103:0;;;;;11365:42;;;;;;;;;;;;;;;-1:-1:-1;;11365:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3455:83::-;3521:12;;3455:83;:::o;11763:40::-;;;;;;;;;;;;-1:-1:-1;;;;;11763:40:0;;:::o;11952:45::-;;;;;;;;;;;;;:::o;11446:28::-;;;;:::o;2159:92::-;781:5;;-1:-1:-1;;;;;781:5:0;767:10;:19;759:28;;;;;;1882:6;;-1:-1:-1;;;1882:6:0;;;;1874:15;;;;;;;;2212:6;:14;;-1:-1:-1;;2212:14:0;;;2237:9;;;;2221:5;;2237:9;2159:92::o;9682:42::-;;;;;;;;;;;;;;;:::o;1562:26::-;;;-1:-1:-1;;;1562:26:0;;;;;:::o;4215:99::-;-1:-1:-1;;;;;4293:16:0;4271:7;4293:16;;;;;;;;;;;;4215:99::o;14946:986::-;15066:10;15033:4;15056:21;;;:9;:21;;;;;;15033:4;;;;;;;;15056:21;;15047:61;;;;;;;-1:-1:-1;;;;;15047:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15122:8;15121:9;15117:86;;;-1:-1:-1;;;;;15151:20:0;;;;;;:9;:20;;;;;15144:27;15190:4;;-1:-1:-1;15183:11:0;;15117:86;15230:1;15220:11;;15211:49;;;;;-1:-1:-1;;;;;15211:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15277:13;;15293:1;-1:-1:-1;15268:56:0;;;;;-1:-1:-1;;;;;15268:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15341:20:0;;;;;;:9;:20;;;;;;:31;-1:-1:-1;15341:31:0;15332:82;;;;;-1:-1:-1;;;;;15332:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15444:7;15423:28;;15493:1;15483:11;;15478:208;15516:1;15500:13;;:17;15496:1;:21;;;15478:208;;;15540:10;;;;;;;:7;:10;;;;;;;;;15587:21;:24;;;;;;;-1:-1:-1;;;;;15540:10:0;;;;-1:-1:-1;15575:48:0;;15617:5;;15575:37;;:7;;:37;:11;:37;:::i;:::-;:41;:48;:41;:48;:::i;:::-;15560:63;;15647:4;15633:18;;;;15661:16;15667:3;15672:4;15661:5;:16::i;:::-;-1:-1:-1;15519:3:0;;;;;15478:208;;;15708:13;;-1:-1:-1;;15708:17:0;15700:26;;;;:7;:26;;;;;;-1:-1:-1;;;;;15700:26:0;;-1:-1:-1;15734:22:0;15700:26;15745:10;15734:5;:22::i;:::-;-1:-1:-1;;;;;;15799:20:0;;;;;;:9;:20;;;;;:31;;;;;;;;;15842:25;15838:66;;;-1:-1:-1;;;;;15884:20:0;;;;;;:9;:20;;;;;15877:27;15838:66;15920:4;15913:11;;14946:986;;;;;;;;;;:::o;11809:54::-;;;;;;;;;;;;;:::o;1980:90::-;781:5;;-1:-1:-1;;;;;781:5:0;767:10;:19;759:28;;;;;;1730:6;;-1:-1:-1;;;1730:6:0;;;;1729:7;1721:16;;;;;;2034:6;:13;;-1:-1:-1;;2034:13:0;-1:-1:-1;;;2034:13:0;;;2058:7;;;;2034:13;;2058:7;1980:90::o;299:20::-;;;-1:-1:-1;;;;;299:20:0;;:::o;11413:27::-;;;;;;;;;;;;;;;-1:-1:-1;;11413:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13313:139;9910:10;13395:4;9896:25;;;:13;:25;;;;;;13381:3;;9896:25;;9895:26;:50;;;;-1:-1:-1;;;;;;9926:19:0;;;;;;:13;:19;;;;;;;;9925:20;9895:50;9887:59;;;;;;;;13418:27;13433:3;13438:6;13418:14;:27::i;:::-;13411:34;13313:139;-1:-1:-1;;;;13313:139:0:o;11903:42::-;;;;;;;;;;;;;;;:::o;9732:46::-;;;;;;;;;;;;;;;:::o;14696:244::-;14791:10;14749:4;14781:21;;;:9;:21;;;;;;;;14773:29;;14781:21;14773:29;14765:38;;;;;;-1:-1:-1;14824:10:0;14814:21;;;;:9;:21;;;;;:31;14929:4;;14696:244::o;9968:206::-;10060:5;;-1:-1:-1;;;;;10060:5:0;10046:10;:19;10038:28;;;;;;-1:-1:-1;;;;;10077:18:0;;;;;;:9;:18;;;;;:29;;-1:-1:-1;;10077:29:0;;;;;;;;;;10117:50;;-1:-1:-1;;;;;10149:18:0;;;;;;:9;:18;;;;;10142:25;;-1:-1:-1;;10142:25:0;;;10117:50;9968:206;;:::o;10180:227::-;10273:10;10263:21;;;;:9;:21;;;;;;;;10255:29;;10263:21;10255:29;10247:38;;;;;;-1:-1:-1;;;;;10303:17:0;;;;10295:26;;;;;;-1:-1:-1;;;;;10332:18:0;;;;;;:13;:18;;;;;;;;;:28;;-1:-1:-1;;10332:28:0;;;;;;;;;;10375:25;;;;;;;;;;;;;;;;;10180:227;;:::o;13961:190::-;14047:5;;-1:-1:-1;;;;;14047:5:0;14033:10;:19;14025:28;;;;;;-1:-1:-1;;;;;14064:18:0;;;;;;:9;:18;;;;;:24;;-1:-1:-1;;14064:24:0;;;;;;;;;;14099:45;;-1:-1:-1;;;;;;14126:18:0;;;;;:9;:18;;;;;14119:25;;-1:-1:-1;;14119:25:0;;;13961:190::o;14271:311::-;14397:5;;14359:4;;-1:-1:-1;;;;;14397:5:0;14383:10;:19;14375:28;;;;;;14442:1;14426:13;;:17;14418:5;:25;14414:53;;;-1:-1:-1;14462:5:0;14455:12;;14414:53;-1:-1:-1;14478:16:0;;;;:7;:16;;;;;;;;:26;;-1:-1:-1;;14478:26:0;-1:-1:-1;;;;;14478:26:0;;;;;14514:21;:30;;;;;:39;;;;;-1:-1:-1;14271:311:0;;;;;;:::o;961:103::-;781:5;;-1:-1:-1;;;;;781:5:0;767:10;:19;759:28;;;;;;1030:29;1049:9;1030:18;:29::i;:::-;961:103;:::o;236:380:1:-;296:9;522:7;;518:36;;;-1:-1:-1;546:1:1;539:8;;518:36;-1:-1:-1;564:7:1;;;569:2;564;:7;584:6;;;;;;;;:12;577:20;;;;236:380;;;;:::o;698:283::-;758:7;974:2;969;:7;;;;;;;;;698:283;-1:-1:-1;;;698:283:1:o;10824:323:0:-;10932:12;;10887:4;;10932:25;;10949:7;10932:25;:16;:25;:::i;:::-;10917:12;:40;-1:-1:-1;;;;;10987:13:0;;:8;:13;;;;;;;;;;;:26;;11005:7;10987:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;10971:13:0;;:8;:13;;;;;;;;;;;;:42;;;;11033:18;;;;;;;10971:13;;11033:18;;;;;;;;;11070:34;;;;;;;;-1:-1:-1;;;;;11070:34:0;;;11087:1;;11070:34;;;;;;;;;-1:-1:-1;11126:4:0;10824:323;;;;:::o;8724:128::-;1730:6;;8801:4;;-1:-1:-1;;;1730:6:0;;;;1729:7;1721:16;;;;;;8820:27;8835:3;8840:6;8820:14;:27::i;1199:171::-;-1:-1:-1;;;;;1269:23:0;;;;1261:32;;;;;;1325:5;;1304:38;;-1:-1:-1;;;;;1304:38:0;;;;1325:5;;1304:38;;1325:5;;1304:38;1348:5;:17;;-1:-1:-1;;1348:17:0;-1:-1:-1;;;;;1348:17:0;;;;;;;;;;1199:171::o;1271:123:1:-;1350:5;;;1368:6;;;;1361:14;;;3692:321:0;3755:4;-1:-1:-1;;;;;3775:17:0;;;;3767:26;;;;;;3826:10;3817:8;:20;;;;;;;;;;;3807:30;;;3799:39;;;;;;3877:10;3868:8;:20;;;;;;;;;;;:32;;3893:6;3868:32;:24;:32;:::i;:::-;3854:10;3845:8;:20;;;;;;;;;;;:55;;;;-1:-1:-1;;;;;3922:13:0;;;;;;:25;;3940:6;3922:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;3906:13:0;;:8;:13;;;;;;;;;;;;:41;;;;3958:33;;;;;;;3906:13;;3967:10;;3958:33;;;;;;;;;;-1:-1:-1;4004:4:0;3692:321;;;;:::o;1097:110:1:-;1155:7;1177:6;;;;1170:14;;;;-1:-1:-1;1197:5:1;;;1097:110::o
Swarm Source
bzzr://0ee32e613a40ab002d5eadf8c97576bdf48995bdb2c51fab9ac95162eefce514
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.