Contract
0x71850b7E9Ee3f13Ab46d67167341E4bDc905Eef9
4
[ Download CSV Export ]
OVERVIEW
1Hive is a DAO that issues and distributes a digital currency called Honey.
Latest 3 internal transactions
Parent Txn Hash | Block | From | To | Value | |||
---|---|---|---|---|---|---|---|
0x90eca389e7d00ab1c7dafa736a504cdbc1743d57ce7a58cfa57f41692de5f9d8 | 27391190 | 59 days 7 hrs ago | 1Hive: HNY Token | 0xed062e26c8f41a9088d060156edc7fc6c17d5825 | 0.01 xDAI | ||
0xbc7e37c4f9ba3351a001e4a33f869b477e75e01a0cfc4fc76729c0216a1645f3 | 12342077 | 978 days 2 hrs ago | 1Hive: HNY Token | 0x2118c3343f6d6d7a2b2ff68c82581cc188166d54 | 0.01 xDAI | ||
0x8b6fe398d91c528510379d1391ae315362a24f93e12a65dcbd9ef4ba0077b179 | 10649067 | 1077 days 20 hrs ago | 0xf7d36d4d46cda364edc85e5561450183469484c5 | Contract Creation | 0 xDAI |
[ Download CSV Export ]
Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x3a97704a1b25F08aa230ae53B352e2e72ef52843
Contract Name:
MiniMeToken
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/** *Submitted for verification at gnosisscan.io on 2023-01-11 */ /** * Submitted for verification at blockscout.com on 2020-09-23 13:46:53.522545Z */ // File: contracts/ITokenController.sol pragma solidity ^0.4.24; /// @dev The token controller contract must implement these functions interface ITokenController { /// @notice Called when `_owner` sends ether to the MiniMe Token contract /// @param _owner The address that sent the ether to create tokens /// @return True if the ether is accepted, false if it throws function proxyPayment(address _owner) external payable returns(bool); /// @notice Notifies the controller about a token transfer allowing the /// controller to react if desired /// @param _from The origin of the transfer /// @param _to The destination of the transfer /// @param _amount The amount of the transfer /// @return False if the controller does not authorize the transfer function onTransfer(address _from, address _to, uint _amount) external returns(bool); /// @notice Notifies the controller about an approval allowing the /// controller to react if desired /// @param _owner The address that calls `approve()` /// @param _spender The spender in the `approve()` call /// @param _amount The amount in the `approve()` call /// @return False if the controller does not authorize the approval function onApprove(address _owner, address _spender, uint _amount) external returns(bool); } // File: contracts/MiniMeToken.sol pragma solidity ^0.4.24; /* Copyright 2016, Jordi Baylina This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ /// @title MiniMeToken Contract /// @author Jordi Baylina /// @dev This token contract's goal is to make it easy for anyone to clone this /// token using the token distribution at a given block, this will allow DAO's /// and DApps to upgrade their features in a decentralized manner without /// affecting the original token /// @dev It is ERC20 compliant, but still needs to under go further testing. contract Controlled { /// @notice The address of the controller is the only address that can call /// a function with this modifier modifier onlyController { require(msg.sender == controller); _; } address public controller; function Controlled() public { controller = msg.sender;} /// @notice Changes the controller of the contract /// @param _newController The new controller of the contract function changeController(address _newController) onlyController public { controller = _newController; } } contract ApproveAndCallFallBack { function receiveApproval( address from, uint256 _amount, address _token, bytes _data ) public; } /// @dev The actual token contract, the default controller is the msg.sender /// that deploys the contract, so usually this token will be deployed by a /// token controller contract, which Giveth will call a "Campaign" contract MiniMeToken is Controlled { string public name; //The Token's name: e.g. DigixDAO Tokens uint8 public decimals; //Number of decimals of the smallest unit string public symbol; //An identifier: e.g. REP string public version = "MMT_0.1"; //An arbitrary versioning scheme /// @dev `Checkpoint` is the structure that attaches a block number to a /// given value, the block number attached is the one that last changed the /// value struct Checkpoint { // `fromBlock` is the block number that the value was generated from uint128 fromBlock; // `value` is the amount of tokens at a specific block number uint128 value; } // `parentToken` is the Token address that was cloned to produce this token; // it will be 0x0 for a token that was not cloned MiniMeToken public parentToken; // `parentSnapShotBlock` is the block number from the Parent Token that was // used to determine the initial distribution of the Clone Token uint public parentSnapShotBlock; // `creationBlock` is the block number that the Clone Token was created uint public creationBlock; // `balances` is the map that tracks the balance of each address, in this // contract when the balance changes the block number that the change // occurred is also included in the map mapping (address => Checkpoint[]) balances; // `allowed` tracks any extra transfer rights as in all ERC20 tokens mapping (address => mapping (address => uint256)) allowed; // Tracks the history of the `totalSupply` of the token Checkpoint[] totalSupplyHistory; // Flag that determines if the token is transferable or not. bool public transfersEnabled; // The factory used to create new clone tokens MiniMeTokenFactory public tokenFactory; //////////////// // Constructor //////////////// /// @notice Constructor to create a MiniMeToken /// @param _tokenFactory The address of the MiniMeTokenFactory contract that /// will create the Clone token contracts, the token factory needs to be /// deployed first /// @param _parentToken Address of the parent token, set to 0x0 if it is a /// new token /// @param _parentSnapShotBlock Block of the parent token that will /// determine the initial distribution of the clone token, set to 0 if it /// is a new token /// @param _tokenName Name of the new token /// @param _decimalUnits Number of decimals of the new token /// @param _tokenSymbol Token Symbol for the new token /// @param _transfersEnabled If true, tokens will be able to be transferred function MiniMeToken( MiniMeTokenFactory _tokenFactory, MiniMeToken _parentToken, uint _parentSnapShotBlock, string _tokenName, uint8 _decimalUnits, string _tokenSymbol, bool _transfersEnabled ) public { tokenFactory = _tokenFactory; name = _tokenName; // Set the name decimals = _decimalUnits; // Set the decimals symbol = _tokenSymbol; // Set the symbol parentToken = _parentToken; parentSnapShotBlock = _parentSnapShotBlock; transfersEnabled = _transfersEnabled; creationBlock = block.number; } /////////////////// // ERC20 Methods /////////////////// /// @notice Send `_amount` tokens to `_to` from `msg.sender` /// @param _to The address of the recipient /// @param _amount The amount of tokens to be transferred /// @return Whether the transfer was successful or not function transfer(address _to, uint256 _amount) public returns (bool success) { require(transfersEnabled); return doTransfer(msg.sender, _to, _amount); } /// @notice Send `_amount` tokens to `_to` from `_from` on the condition it /// is approved by `_from` /// @param _from The address holding the tokens being transferred /// @param _to The address of the recipient /// @param _amount The amount of tokens to be transferred /// @return True if the transfer was successful function transferFrom(address _from, address _to, uint256 _amount) public returns (bool success) { // The controller of this contract can move tokens around at will, // this is important to recognize! Confirm that you trust the // controller of this contract, which in most situations should be // another open source smart contract or 0x0 if (msg.sender != controller) { require(transfersEnabled); // The standard ERC 20 transferFrom functionality if (allowed[_from][msg.sender] < _amount) return false; allowed[_from][msg.sender] -= _amount; } return doTransfer(_from, _to, _amount); } /// @dev This is the actual transfer function in the token contract, it can /// only be called by other functions in this contract. /// @param _from The address holding the tokens being transferred /// @param _to The address of the recipient /// @param _amount The amount of tokens to be transferred /// @return True if the transfer was successful function doTransfer(address _from, address _to, uint _amount) internal returns(bool) { if (_amount == 0) { return true; } require(parentSnapShotBlock < block.number); // Do not allow transfer to 0x0 or the token contract itself require((_to != 0) && (_to != address(this))); // If the amount being transfered is more than the balance of the // account the transfer returns false var previousBalanceFrom = balanceOfAt(_from, block.number); if (previousBalanceFrom < _amount) { return false; } // Alerts the token controller of the transfer if (isContract(controller)) { // Adding the ` == true` makes the linter shut up so... require(ITokenController(controller).onTransfer(_from, _to, _amount) == true); } // First update the balance array with the new value for the address // sending the tokens updateValueAtNow(balances[_from], previousBalanceFrom - _amount); // Then update the balance array with the new value for the address // receiving the tokens var previousBalanceTo = balanceOfAt(_to, block.number); require(previousBalanceTo + _amount >= previousBalanceTo); // Check for overflow updateValueAtNow(balances[_to], previousBalanceTo + _amount); // An event to make the transfer easy to find on the blockchain Transfer(_from, _to, _amount); return true; } /// @param _owner The address that's balance is being requested /// @return The balance of `_owner` at the current block function balanceOf(address _owner) public constant returns (uint256 balance) { return balanceOfAt(_owner, block.number); } /// @notice `msg.sender` approves `_spender` to spend `_amount` tokens on /// its behalf. This is a modified version of the ERC20 approve function /// to be a little bit safer /// @param _spender The address of the account able to transfer the tokens /// @param _amount The amount of tokens to be approved for transfer /// @return True if the approval was successful function approve(address _spender, uint256 _amount) public returns (bool success) { require(transfersEnabled); // To change the approve amount you first have to reduce the addresses` // allowance to zero by calling `approve(_spender,0)` if it is not // already 0 to mitigate the race condition described here: // https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 require((_amount == 0) || (allowed[msg.sender][_spender] == 0)); // Alerts the token controller of the approve function call if (isContract(controller)) { // Adding the ` == true` makes the linter shut up so... require(ITokenController(controller).onApprove(msg.sender, _spender, _amount) == true); } allowed[msg.sender][_spender] = _amount; Approval(msg.sender, _spender, _amount); return true; } /// @dev This function makes it easy to read the `allowed[]` map /// @param _owner The address of the account that owns the token /// @param _spender The address of the account able to transfer the tokens /// @return Amount of remaining tokens of _owner that _spender is allowed /// to spend function allowance(address _owner, address _spender) public constant returns (uint256 remaining) { return allowed[_owner][_spender]; } /// @notice `msg.sender` approves `_spender` to send `_amount` tokens on /// its behalf, and then a function is triggered in the contract that is /// being approved, `_spender`. This allows users to use their tokens to /// interact with contracts in one function call instead of two /// @param _spender The address of the contract able to transfer the tokens /// @param _amount The amount of tokens to be approved for transfer /// @return True if the function call was successful function approveAndCall(ApproveAndCallFallBack _spender, uint256 _amount, bytes _extraData) public returns (bool success) { require(approve(_spender, _amount)); _spender.receiveApproval( msg.sender, _amount, this, _extraData ); return true; } /// @dev This function makes it easy to get the total number of tokens /// @return The total number of tokens function totalSupply() public constant returns (uint) { return totalSupplyAt(block.number); } //////////////// // Query balance and totalSupply in History //////////////// /// @dev Queries the balance of `_owner` at a specific `_blockNumber` /// @param _owner The address from which the balance will be retrieved /// @param _blockNumber The block number when the balance is queried /// @return The balance at `_blockNumber` function balanceOfAt(address _owner, uint _blockNumber) public constant returns (uint) { // These next few lines are used when the balance of the token is // requested before a check point was ever created for this token, it // requires that the `parentToken.balanceOfAt` be queried at the // genesis block for that token as this contains initial balance of // this token if ((balances[_owner].length == 0) || (balances[_owner][0].fromBlock > _blockNumber)) { if (address(parentToken) != 0) { return parentToken.balanceOfAt(_owner, min(_blockNumber, parentSnapShotBlock)); } else { // Has no parent return 0; } // This will return the expected balance during normal situations } else { return getValueAt(balances[_owner], _blockNumber); } } /// @notice Total amount of tokens at a specific `_blockNumber`. /// @param _blockNumber The block number when the totalSupply is queried /// @return The total amount of tokens at `_blockNumber` function totalSupplyAt(uint _blockNumber) public constant returns(uint) { // These next few lines are used when the totalSupply of the token is // requested before a check point was ever created for this token, it // requires that the `parentToken.totalSupplyAt` be queried at the // genesis block for this token as that contains totalSupply of this // token at this block number. if ((totalSupplyHistory.length == 0) || (totalSupplyHistory[0].fromBlock > _blockNumber)) { if (address(parentToken) != 0) { return parentToken.totalSupplyAt(min(_blockNumber, parentSnapShotBlock)); } else { return 0; } // This will return the expected totalSupply during normal situations } else { return getValueAt(totalSupplyHistory, _blockNumber); } } //////////////// // Clone Token Method //////////////// /// @notice Creates a new clone token with the initial distribution being /// this token at `_snapshotBlock` /// @param _cloneTokenName Name of the clone token /// @param _cloneDecimalUnits Number of decimals of the smallest unit /// @param _cloneTokenSymbol Symbol of the clone token /// @param _snapshotBlock Block when the distribution of the parent token is /// copied to set the initial distribution of the new clone token; /// if the block is zero than the actual block, the current block is used /// @param _transfersEnabled True if transfers are allowed in the clone /// @return The address of the new MiniMeToken Contract function createCloneToken( string _cloneTokenName, uint8 _cloneDecimalUnits, string _cloneTokenSymbol, uint _snapshotBlock, bool _transfersEnabled ) public returns(MiniMeToken) { uint256 snapshot = _snapshotBlock == 0 ? block.number - 1 : _snapshotBlock; MiniMeToken cloneToken = tokenFactory.createCloneToken( this, snapshot, _cloneTokenName, _cloneDecimalUnits, _cloneTokenSymbol, _transfersEnabled ); cloneToken.changeController(msg.sender); // An event to make the token easy to find on the blockchain NewCloneToken(address(cloneToken), snapshot); return cloneToken; } //////////////// // Generate and destroy tokens //////////////// /// @notice Generates `_amount` tokens that are assigned to `_owner` /// @param _owner The address that will be assigned the new tokens /// @param _amount The quantity of tokens generated /// @return True if the tokens are generated correctly function generateTokens(address _owner, uint _amount) onlyController public returns (bool) { uint curTotalSupply = totalSupply(); require(curTotalSupply + _amount >= curTotalSupply); // Check for overflow uint previousBalanceTo = balanceOf(_owner); require(previousBalanceTo + _amount >= previousBalanceTo); // Check for overflow updateValueAtNow(totalSupplyHistory, curTotalSupply + _amount); updateValueAtNow(balances[_owner], previousBalanceTo + _amount); Transfer(0, _owner, _amount); return true; } /// @notice Burns `_amount` tokens from `_owner` /// @param _owner The address that will lose the tokens /// @param _amount The quantity of tokens to burn /// @return True if the tokens are burned correctly function destroyTokens(address _owner, uint _amount) onlyController public returns (bool) { uint curTotalSupply = totalSupply(); require(curTotalSupply >= _amount); uint previousBalanceFrom = balanceOf(_owner); require(previousBalanceFrom >= _amount); updateValueAtNow(totalSupplyHistory, curTotalSupply - _amount); updateValueAtNow(balances[_owner], previousBalanceFrom - _amount); Transfer(_owner, 0, _amount); return true; } //////////////// // Enable tokens transfers //////////////// /// @notice Enables token holders to transfer their tokens freely if true /// @param _transfersEnabled True if transfers are allowed in the clone function enableTransfers(bool _transfersEnabled) onlyController public { transfersEnabled = _transfersEnabled; } //////////////// // Internal helper functions to query and set a value in a snapshot array //////////////// /// @dev `getValueAt` retrieves the number of tokens at a given block number /// @param checkpoints The history of values being queried /// @param _block The block number to retrieve the value at /// @return The number of tokens being queried function getValueAt(Checkpoint[] storage checkpoints, uint _block) constant internal returns (uint) { if (checkpoints.length == 0) return 0; // Shortcut for the actual value if (_block >= checkpoints[checkpoints.length-1].fromBlock) return checkpoints[checkpoints.length-1].value; if (_block < checkpoints[0].fromBlock) return 0; // Binary search of the value in the array uint min = 0; uint max = checkpoints.length-1; while (max > min) { uint mid = (max + min + 1) / 2; if (checkpoints[mid].fromBlock<=_block) { min = mid; } else { max = mid-1; } } return checkpoints[min].value; } /// @dev `updateValueAtNow` used to update the `balances` map and the /// `totalSupplyHistory` /// @param checkpoints The history of data being updated /// @param _value The new number of tokens function updateValueAtNow(Checkpoint[] storage checkpoints, uint _value) internal { if ((checkpoints.length == 0) || (checkpoints[checkpoints.length - 1].fromBlock < block.number)) { Checkpoint storage newCheckPoint = checkpoints[checkpoints.length++]; newCheckPoint.fromBlock = uint128(block.number); newCheckPoint.value = uint128(_value); } else { Checkpoint storage oldCheckPoint = checkpoints[checkpoints.length - 1]; oldCheckPoint.value = uint128(_value); } } /// @dev Internal function to determine if an address is a contract /// @param _addr The address being queried /// @return True if `_addr` is a contract function isContract(address _addr) constant internal returns(bool) { uint size; if (_addr == 0) return false; assembly { size := extcodesize(_addr) } return size>0; } /// @dev Helper function to return a min betwen the two uints function min(uint a, uint b) pure internal returns (uint) { return a < b ? a : b; } /// @notice The fallback function: If the contract's controller has not been /// set to 0, then the `proxyPayment` method is called which relays the /// ether and creates tokens as described in the token controller contract function () external payable { require(isContract(controller)); // Adding the ` == true` makes the linter shut up so... require(ITokenController(controller).proxyPayment.value(msg.value)(msg.sender) == true); } ////////// // Safety Methods ////////// /// @notice This method can be used by the controller to extract mistakenly /// sent tokens to this contract. /// @param _token The address of the token contract that you want to recover /// set to 0 in case you want to extract ether. function claimTokens(address _token) onlyController public { if (_token == 0x0) { controller.transfer(this.balance); return; } MiniMeToken token = MiniMeToken(_token); uint balance = token.balanceOf(this); token.transfer(controller, balance); ClaimedTokens(_token, controller, balance); } //////////////// // Events //////////////// event ClaimedTokens(address indexed _token, address indexed _controller, uint _amount); event Transfer(address indexed _from, address indexed _to, uint256 _amount); event NewCloneToken(address indexed _cloneToken, uint _snapshotBlock); event Approval( address indexed _owner, address indexed _spender, uint256 _amount ); } //////////////// // MiniMeTokenFactory //////////////// /// @dev This contract is used to generate clone contracts from a contract. /// In solidity this is the way to create a contract from a contract of the /// same class contract MiniMeTokenFactory { /// @notice Update the DApp by creating a new token with new functionalities /// the msg.sender becomes the controller of this clone token /// @param _parentToken Address of the token being cloned /// @param _snapshotBlock Block of the parent token that will /// determine the initial distribution of the clone token /// @param _tokenName Name of the new token /// @param _decimalUnits Number of decimals of the new token /// @param _tokenSymbol Token Symbol for the new token /// @param _transfersEnabled If true, tokens will be able to be transferred /// @return The address of the new token contract function createCloneToken( MiniMeToken _parentToken, uint _snapshotBlock, string _tokenName, uint8 _decimalUnits, string _tokenSymbol, bool _transfersEnabled ) public returns (MiniMeToken) { MiniMeToken newToken = new MiniMeToken( this, _parentToken, _snapshotBlock, _tokenName, _decimalUnits, _tokenSymbol, _transfersEnabled ); newToken.changeController(msg.sender); return newToken; } }
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"creationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newController","type":"address"}],"name":"changeController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_blockNumber","type":"uint256"}],"name":"balanceOfAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cloneTokenName","type":"string"},{"name":"_cloneDecimalUnits","type":"uint8"},{"name":"_cloneTokenSymbol","type":"string"},{"name":"_snapshotBlock","type":"uint256"},{"name":"_transfersEnabled","type":"bool"}],"name":"createCloneToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"parentToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_amount","type":"uint256"}],"name":"generateTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_blockNumber","type":"uint256"}],"name":"totalSupplyAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"transfersEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"parentSnapShotBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_amount","type":"uint256"}],"name":"destroyTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"claimTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenFactory","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_transfersEnabled","type":"bool"}],"name":"enableTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"controller","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_tokenFactory","type":"address"},{"name":"_parentToken","type":"address"},{"name":"_parentSnapShotBlock","type":"uint256"},{"name":"_tokenName","type":"string"},{"name":"_decimalUnits","type":"uint8"},{"name":"_tokenSymbol","type":"string"},{"name":"_transfersEnabled","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_token","type":"address"},{"indexed":true,"name":"_controller","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"ClaimedTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_cloneToken","type":"address"},{"indexed":false,"name":"_snapshotBlock","type":"uint256"}],"name":"NewCloneToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
60c0604052600760808190527f4d4d545f302e310000000000000000000000000000000000000000000000000060a090815262000040916004919062000147565b503480156200004e57600080fd5b50604051620019f9380380620019f98339810160409081528151602080840151928401516060850151608086015160a087015160c088015160008054600160a060020a03191633179055600b8054600160a060020a0389166101000261010060a860020a031990911617905592880180519698949690959294919091019291620000de9160019187019062000147565b506002805460ff191660ff851617905581516200010390600390602085019062000147565b5060058054600160a060020a031916600160a060020a039790971696909617909555505050600655600b805460ff19169115159190911790555043600755620001ec565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200018a57805160ff1916838001178555620001ba565b82800160010185558215620001ba579182015b82811115620001ba5782518255916020019190600101906200019d565b50620001c8929150620001cc565b5090565b620001e991905b80821115620001c85760008155600101620001d3565b90565b6117fd80620001fc6000396000f30060806040526004361061012f5763ffffffff60e060020a60003504166306fdde0381146101dc578063095ea7b314610266578063176345141461029e57806318160ddd146102c557806323b872dd146102da578063313ce567146103045780633cebb8231461032f5780634ee2cd7e1461035057806354fd4d50146103745780636638c0871461038957806370a082311461044c57806380a540011461046d578063827f32c01461048257806395d89b41146104a6578063981b24d0146104bb578063a9059cbb146104d3578063bef97c87146104f7578063c5bcc4f11461050c578063cae9ca5114610521578063d3ce77fe1461058a578063dd62ed3e146105ae578063df8de3e7146105d5578063e77772fe146105f6578063f41e60c51461060b578063f77c479114610625575b60005461014490600160a060020a031661063a565b151561014f57600080fd5b6000546040805160e260020a633d230c150281523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b15801561019f57600080fd5b505af11580156101b3573d6000803e3d6000fd5b50505050506040513d60208110156101ca57600080fd5b505115156001146101da57600080fd5b005b3480156101e857600080fd5b506101f1610667565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022b578181015183820152602001610213565b50505050905090810190601f1680156102585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027257600080fd5b5061028a600160a060020a03600435166024356106f4565b604080519115158252519081900360200190f35b3480156102aa57600080fd5b506102b361085f565b60408051918252519081900360200190f35b3480156102d157600080fd5b506102b3610865565b3480156102e657600080fd5b5061028a600160a060020a0360043581169060243516604435610876565b34801561031057600080fd5b5061031961090d565b6040805160ff9092168252519081900360200190f35b34801561033b57600080fd5b506101da600160a060020a0360043516610916565b34801561035c57600080fd5b506102b3600160a060020a036004351660243561094f565b34801561038057600080fd5b506101f1610a9c565b34801561039557600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261043094369492936024939284019190819084018382808284375050604080516020601f818a01358b0180359182018390048302840183018552818452989b60ff8b35169b909a909994019750919550918201935091508190840183828082843750949750508435955050505050602001351515610af7565b60408051600160a060020a039092168252519081900360200190f35b34801561045857600080fd5b506102b3600160a060020a0360043516610d31565b34801561047957600080fd5b50610430610d45565b34801561048e57600080fd5b5061028a600160a060020a0360043516602435610d54565b3480156104b257600080fd5b506101f1610e0e565b3480156104c757600080fd5b506102b3600435610e69565b3480156104df57600080fd5b5061028a600160a060020a0360043516602435610f5d565b34801561050357600080fd5b5061028a610f7c565b34801561051857600080fd5b506102b3610f85565b34801561052d57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261028a948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750610f8b9650505050505050565b34801561059657600080fd5b5061028a600160a060020a0360043516602435611090565b3480156105ba57600080fd5b506102b3600160a060020a0360043581169060243516611146565b3480156105e157600080fd5b506101da600160a060020a0360043516611171565b34801561060257600080fd5b5061043061132c565b34801561061757600080fd5b506101da6004351515611340565b34801561063157600080fd5b5061043061136a565b600080600160a060020a03831615156106565760009150610661565b823b90506000811191505b50919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106ec5780601f106106c1576101008083540402835291602001916106ec565b820191906000526020600020905b8154815290600101906020018083116106cf57829003601f168201915b505050505081565b600b5460009060ff16151561070857600080fd5b8115806107365750336000908152600960209081526040808320600160a060020a0387168452909152902054155b151561074157600080fd5b60005461075690600160a060020a031661063a565b156107f757600080546040805160e060020a63da682aeb028152336004820152600160a060020a038781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b1580156107bd57600080fd5b505af11580156107d1573d6000803e3d6000fd5b505050506040513d60208110156107e757600080fd5b505115156001146107f757600080fd5b336000818152600960209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60075481565b600061087043610e69565b90505b90565b60008054600160a060020a031633146108f857600b5460ff16151561089a57600080fd5b600160a060020a03841660009081526009602090815260408083203384529091529020548211156108cd57506000610906565b600160a060020a03841660009081526009602090815260408083203384529091529020805483900390555b610903848484611379565b90505b9392505050565b60025460ff1681565b600054600160a060020a0316331461092d57600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b600160a060020a03821660009081526008602052604081205415806109ab5750600160a060020a03831660009081526008602052604081208054849290811061099457fe5b6000918252602090912001546001608060020a0316115b15610a7357600554600160a060020a031615610a6b57600554600654600160a060020a0390911690634ee2cd7e9085906109e6908690611546565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610a3857600080fd5b505af1158015610a4c573d6000803e3d6000fd5b505050506040513d6020811015610a6257600080fd5b50519050610859565b506000610859565b600160a060020a0383166000908152600860205260409020610a95908361155c565b9050610859565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106ec5780601f106106c1576101008083540402835291602001916106ec565b600080808415610b075784610b0c565b600143035b600b5460405160e060020a635b7b72c102815230600482018181526024830185905260ff8c16606484015288151560a484015260c0604484019081528d5160c48501528d51959750610100909404600160a060020a031694635b7b72c194929388938f938f938f938e9391608482019160e40190602089019080838360005b83811015610ba3578181015183820152602001610b8b565b50505050905090810190601f168015610bd05780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610c03578181015183820152602001610beb565b50505050905090810190601f168015610c305780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015610c5557600080fd5b505af1158015610c69573d6000803e3d6000fd5b505050506040513d6020811015610c7f57600080fd5b50516040805160e060020a633cebb8230281523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610ccf57600080fd5b505af1158015610ce3573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a2979650505050505050565b6000610d3d824361094f565b90505b919050565b600554600160a060020a031681565b6000805481908190600160a060020a03163314610d7057600080fd5b610d78610865565b9150838201821115610d8957600080fd5b610d9285610d31565b9050838101811115610da357600080fd5b610db0600a8584016116a1565b600160a060020a0385166000908152600860205260409020610dd4908286016116a1565b604080518581529051600160a060020a038716916000916000805160206117b28339815191529181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106ec5780601f106106c1576101008083540402835291602001916106ec565b600a546000901580610e9e575081600a6000815481101515610e8757fe5b6000918252602090912001546001608060020a0316115b15610f4b57600554600160a060020a031615610f4357600554600654600160a060020a039091169063981b24d090610ed7908590611546565b6040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015610f1057600080fd5b505af1158015610f24573d6000803e3d6000fd5b505050506040513d6020811015610f3a57600080fd5b50519050610d40565b506000610d40565b610f56600a8361155c565b9050610d40565b600b5460009060ff161515610f7157600080fd5b610906338484611379565b600b5460ff1681565b60065481565b6000610f9784846106f4565b1515610fa257600080fd5b60405160e060020a638f4ffcb10281523360048201818152602483018690523060448401819052608060648501908152865160848601528651600160a060020a038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b8381101561101f578181015183820152602001611007565b50505050905090810190601f16801561104c5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561106e57600080fd5b505af1158015611082573d6000803e3d6000fd5b506001979650505050505050565b6000805481908190600160a060020a031633146110ac57600080fd5b6110b4610865565b9150838210156110c357600080fd5b6110cc85610d31565b9050838110156110db57600080fd5b6110e8600a8584036116a1565b600160a060020a038516600090815260086020526040902061110c908583036116a1565b604080518581529051600091600160a060020a038816916000805160206117b28339815191529181900360200190a3506001949350505050565b600160a060020a03918216600090815260096020908152604080832093909416825291909152205490565b600080548190600160a060020a0316331461118b57600080fd5b600160a060020a03831615156111dc5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f193505050501580156111d6573d6000803e3d6000fd5b50611327565b6040805160e060020a6370a082310281523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561122a57600080fd5b505af115801561123e573d6000803e3d6000fd5b505050506040513d602081101561125457600080fd5b5051600080546040805160e060020a63a9059cbb028152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b1580156112b457600080fd5b505af11580156112c8573d6000803e3d6000fd5b505050506040513d60208110156112de57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a35b505050565b600b546101009004600160a060020a031681565b600054600160a060020a0316331461135757600080fd5b600b805460ff1916911515919091179055565b600054600160a060020a031681565b6000808083151561138d576001925061153d565b600654431161139b57600080fd5b600160a060020a038516158015906113bc5750600160a060020a0385163014155b15156113c757600080fd5b6113d1864361094f565b9150838210156113e4576000925061153d565b6000546113f990600160a060020a031661063a565b1561149c57600080546040805160e060020a634a393149028152600160a060020a038a8116600483015289811660248301526044820189905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561146257600080fd5b505af1158015611476573d6000803e3d6000fd5b505050506040513d602081101561148c57600080fd5b5051151560011461149c57600080fd5b600160a060020a03861660009081526008602052604090206114c0908584036116a1565b6114ca854361094f565b90508381018111156114db57600080fd5b600160a060020a03851660009081526008602052604090206114ff908286016116a1565b84600160a060020a031686600160a060020a03166000805160206117b2833981519152866040518082815260200191505060405180910390a3600192505b50509392505050565b60008183106115555781610906565b5090919050565b6000806000808580549050600014156115785760009350611698565b85548690600019810190811061158a57fe5b6000918252602090912001546001608060020a031685106115da578554869060001981019081106115b757fe5b600091825260209091200154608060020a90046001608060020a03169350611698565b8560008154811015156115e957fe5b6000918252602090912001546001608060020a031685101561160e5760009350611698565b8554600093506000190191505b8282111561166b57600260018385010104905084868281548110151561163d57fe5b6000918252602090912001546001608060020a03161161165f57809250611666565b6001810391505b61161b565b858381548110151561167957fe5b600091825260209091200154608060020a90046001608060020a031693505b50505092915050565b8154600090819015806116da575083544390859060001981019081106116c357fe5b6000918252602090912001546001608060020a0316105b1561173657835484906116f08260018301611774565b815481106116fa57fe5b600091825260209091200180546001608060020a03858116608060020a024382166001608060020a03199093169290921716178155915061176e565b83548490600019810190811061174857fe5b600091825260209091200180546001608060020a03808616608060020a02911617815590505b50505050565b8154818355818111156113275760008381526020902061132791810190830161087391905b808211156117ad5760008155600101611799565b50905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820d059d572cd1c49b4fece9a0331fe4b2956f19d2f7a900902a8ba56bdb2c3e3fa0029000000000000000000000000f7d36d4d46cda364edc85e5561450183469484c50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b416761766520546f6b656e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044147564500000000000000000000000000000000000000000000000000000000
Deployed ByteCode Sourcemap
3643:20346:0:-;;;;;;;;-1:-1:-1;;;3643:20346:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22690:10;;22679:22;;-1:-1:-1;;;;;22690:10:0;22679;:22::i;:::-;22671:31;;;;;;;;22803:10;;22786:70;;;-1:-1:-1;;;;;22786:70:0;;22845:10;22786:70;;;;;;-1:-1:-1;;;;;22803:10:0;;;;22786:41;;22834:9;;22786:70;;;;;;;;;;;;;;22834:9;22803:10;22786:70;;;5:2:-1;;;;30:1;27;20:12;5:2;22786:70:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22786:70:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22786:70:0;:78;;22860:4;22786:78;22778:87;;;;;;3643:20346;3687:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3687:18: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;3687:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11326:924;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11326:924:0;;;-1:-1:-1;;;;;11326:924:0;;;;;;;;;;;;;;;;;;;;;;;4854:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4854:25:0;;;;;;;;;;;;;;;;;;;;13717:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13717:107:0;;;;7987:731;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7987:731:0;-1:-1:-1;;;;;7987:731:0;;;;;;;;;;;;3768:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3768:21:0;;;;;;;;;;;;;;;;;;;;;;;3112:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3112:119:0;;;-1:-1:-1;;;;;3112:119:0;;;14189:937;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14189:937:0;;;-1:-1:-1;;;;;14189:937:0;;;;;3916:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3916:33:0;;;;17013:779;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17013:779:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17013:779:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17013:779:0;;-1:-1:-1;17013:779:0;;;;-1:-1:-1;17013:779:0;-1:-1:-1;17013:779:0;;;;;;;;;;-1:-1:-1;17013:779:0;;-1:-1:-1;;17013:779:0;;;-1:-1:-1;;;;;17013:779:0;;;;;;;;;;;-1:-1:-1;;;;;17013:779:0;;;;;;;;;;;;;;10783:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10783:136:0;;;-1:-1:-1;;;;;10783:136:0;;;4546:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4546:30:0;;;;18133:580;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18133:580:0;;;-1:-1:-1;;;;;18133:580:0;;;;;3850:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3850:20:0;;;;15344:916;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15344:916:0;;;;;7453:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7453:176:0;;;-1:-1:-1;;;;;7453:176:0;;;;;5447:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5447:28:0;;;;4737:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4737:31:0;;;;13250:339;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13250:339:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13250:339:0;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13250:339:0;;-1:-1:-1;13250:339:0;;-1:-1:-1;;;;;;;13250:339:0;18950:504;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18950:504:0;;;-1:-1:-1;;;;;18950:504:0;;;;;12576:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12576:148:0;-1:-1:-1;;;;;12576:148:0;;;;;;;;;;23183:375;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23183:375:0;;;-1:-1:-1;;;;;23183:375:0;;;5536:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5536:38:0;;;;19686:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19686:126:0;;;;;;;2891:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2891:25:0;;;;21964:246;22025:4;;-1:-1:-1;;;;;22066:10:0;;;22062:41;;;22098:5;22091:12;;;;22062:41;22160:5;22148:18;22140:26;;22201:1;22196:4;:6;22189:13;;21964:246;;;;;:::o;3687:18::-;;;;;;;;;;;;;;;-1:-1:-1;;3687:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11326:924::-;11427:16;;11394:12;;11427:16;;11419:25;;;;;;;;11773:12;;;11772:54;;-1:-1:-1;11799:10:0;11791:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;11791:29:0;;;;;;;;;;:34;11772:54;11764:63;;;;;;;;11924:10;;11913:22;;-1:-1:-1;;;;;11924:10:0;11913;:22::i;:::-;11909:210;;;12046:10;;;12029:69;;;-1:-1:-1;;;;;12029:69:0;;12068:10;12029:69;;;;-1:-1:-1;;;;;12029:69:0;;;;;;;;;;;;;;;12046:10;;;;;-1:-1:-1;;12029:69:0;;;;;;;;;;;;;;;;;;12046:10;12029:69;;;5:2:-1;;;;30:1;27;20:12;5:2;12029:69:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12029:69:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12029:69:0;:77;;12102:4;12029:77;12021:86;;;;;;12139:10;12131:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;12131:29:0;;;;;;;;;;;;:39;;;12181;;;;;;;12131:29;;12139:10;12181:39;;;;;;;;;;;-1:-1:-1;12238:4:0;11326:924;;;;;:::o;4854:25::-;;;;:::o;13717:107::-;13765:4;13789:27;13803:12;13789:13;:27::i;:::-;13782:34;;13717:107;;:::o;7987:731::-;8070:12;8395:10;;-1:-1:-1;;;;;8395:10:0;8381;:24;8377:285;;8430:16;;;;8422:25;;;;;;;;-1:-1:-1;;;;;8531:14:0;;;;;;:7;:14;;;;;;;;8546:10;8531:26;;;;;;;;-1:-1:-1;;8527:71:0;;;-1:-1:-1;8593:5:0;8586:12;;8527:71;-1:-1:-1;;;;;8613:14:0;;;;;;:7;:14;;;;;;;;8628:10;8613:26;;;;;;;:37;;;;;;;8377:285;8679:31;8690:5;8697:3;8702:7;8679:10;:31::i;:::-;8672:38;;7987:731;;;;;;:::o;3768:21::-;;;;;;:::o;3112:119::-;2852:10;;-1:-1:-1;;;;;2852:10:0;2838;:24;2830:33;;;;;;3196:10;:27;;-1:-1:-1;;;;;;3196:27:0;-1:-1:-1;;;;;3196:27:0;;;;;;;;;;3112:119::o;14189:937::-;-1:-1:-1;;;;;14626:16:0;;14270:4;14626:16;;;:8;:16;;;;;:23;:28;;14625:80;;-1:-1:-1;;;;;;14660:16:0;;;;;;:8;:16;;;;;:19;;14692:12;;14660:16;:19;;;;;;;;;;;;;;;:29;-1:-1:-1;;;;;14660:29:0;:44;14625:80;14621:498;;;14734:11;;-1:-1:-1;;;;;14734:11:0;14726:25;14722:227;;14779:11;;14829:19;;-1:-1:-1;;;;;14779:11:0;;;;:23;;14803:6;;14811:38;;14815:12;;14811:3;:38::i;:::-;14779:71;;;-1:-1:-1;;;14779:71:0;;;;;;-1:-1:-1;;;;;14779:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14779:71:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;14779:71:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14779:71:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14779:71:0;;-1:-1:-1;14772:78:0;;14722:227;-1:-1:-1;14932:1:0;14925:8;;14621:498;-1:-1:-1;;;;;15076:16:0;;;;;;:8;:16;;;;;15065:42;;15094:12;15065:10;:42::i;:::-;15058:49;;;;3916:33;;;;;;;;;;;;;;;-1:-1:-1;;3916:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17013:779;17227:11;;;17275:19;;:55;;17316:14;17275:55;;;17312:1;17297:12;:16;17275:55;17368:12;;:209;;-1:-1:-1;;;;;17368:209:0;;17412:4;17368:209;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17368:12:0;;;;-1:-1:-1;;;;;17368:12:0;;-1:-1:-1;;17412:4:0;;17368:209;;;;;;17517:17;;17368:209;;;;;;;;;;-1:-1:-1;17368:209:0;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;17368:209:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17368:209:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;17368:209:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17368:209:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17368:209:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17368:209:0;17590:39;;;-1:-1:-1;;;;;17590:39:0;;17618:10;17590:39;;;;;;17368:209;;-1:-1:-1;;;;;;17590:27:0;;;-1:-1:-1;;17590:39:0;;;;;-1:-1:-1;;17590:39:0;;;;;;;;-1:-1:-1;17590:27:0;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;17590:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17712:44:0;;;;;;;;-1:-1:-1;;;;;17712:44:0;;;-1:-1:-1;17712:44:0;;-1:-1:-1;17712:44:0;;;;;;;;17774:10;17013:779;-1:-1:-1;;;;;;;17013:779:0:o;10783:136::-;10843:15;10878:33;10890:6;10898:12;10878:11;:33::i;:::-;10871:40;;10783:136;;;;:::o;4546:30::-;;;-1:-1:-1;;;;;4546:30:0;;:::o;18133:580::-;18218:4;2852:10;;18218:4;;;;-1:-1:-1;;;;;2852:10:0;2838;:24;2830:33;;;;;;18257:13;:11;:13::i;:::-;18235:35;-1:-1:-1;18289:24:0;;;:42;-1:-1:-1;18289:42:0;18281:51;;;;;;18390:17;18400:6;18390:9;:17::i;:::-;18365:42;-1:-1:-1;18426:27:0;;;:48;-1:-1:-1;18426:48:0;18418:57;;;;;;18508:62;18525:18;18562:7;18545:14;:24;18508:16;:62::i;:::-;-1:-1:-1;;;;;18598:16:0;;;;;;:8;:16;;;;;18581:63;;18616:27;;;18581:16;:63::i;:::-;18655:28;;;;;;;;18664:1;-1:-1:-1;;;;;;;18655:28:0;;;18664:1;;18655:28;18664:1;;-1:-1:-1;;18664:1:0;-1:-1:-1;;;;;18655:28:0;;;;;;;;-1:-1:-1;18701:4:0;;18133:580;-1:-1:-1;;;;18133:580:0:o;3850:20::-;;;;;;;;;;;;;;;-1:-1:-1;;3850:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15344:916;15790:18;:25;15410:4;;15790:30;;15789:84;;;15860:12;15826:18;15845:1;15826:21;;;;;;;;;;;;;;;;;;;:31;-1:-1:-1;;;;;15826:31:0;:46;15789:84;15785:468;;;15902:11;;-1:-1:-1;;;;;15902:11:0;15894:25;15890:187;;15947:11;;15991:19;;-1:-1:-1;;;;;15947:11:0;;;;:25;;15973:38;;15977:12;;15973:3;:38::i;:::-;15947:65;;;;;-1:-1:-1;;;15947:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15947:65:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15947:65:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15947:65:0;;-1:-1:-1;15940:72:0;;15890:187;-1:-1:-1;16060:1:0;16053:8;;15785:468;16197:44;16208:18;16228:12;16197:10;:44::i;:::-;16190:51;;;;7453:176;7550:16;;7517:12;;7550:16;;7542:25;;;;;;;;7585:36;7596:10;7608:3;7613:7;7585:10;:36::i;5447:28::-;;;;;;:::o;4737:31::-;;;;:::o;13250:339::-;13358:12;13391:26;13399:8;13409:7;13391;:26::i;:::-;13383:35;;;;;;;;13431:126;;-1:-1:-1;;;;;13431:126:0;;13470:10;13431:126;;;;;;;;;;;;13517:4;13431:126;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13431:24:0;;;-1:-1:-1;;13470:10:0;13431:126;;13517:4;13431:126;;;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;13431:126:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13431:126:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;13577:4:0;;13250:339;-1:-1:-1;;;;;;;13250:339:0:o;18950:504::-;19034:4;2852:10;;19034:4;;;;-1:-1:-1;;;;;2852:10:0;2838;:24;2830:33;;;;;;19073:13;:11;:13::i;:::-;19051:35;-1:-1:-1;19105:25:0;;;;19097:34;;;;;;19169:17;19179:6;19169:9;:17::i;:::-;19142:44;-1:-1:-1;19205:30:0;;;;19197:39;;;;;;19247:62;19264:18;19301:7;19284:14;:24;19247:16;:62::i;:::-;-1:-1:-1;;;;;19337:16:0;;;;;;:8;:16;;;;;19320:65;;19355:29;;;19320:16;:65::i;:::-;19396:28;;;;;;;;19413:1;;-1:-1:-1;;;;;19396:28:0;;;-1:-1:-1;;;;;;;;;;;19396:28:0;;;;;;;;-1:-1:-1;19442:4:0;;18950:504;-1:-1:-1;;;;18950:504:0:o;12576:148::-;-1:-1:-1;;;;;12691:15:0;;;12654:17;12691:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;12576:148::o;23183:375::-;23365:17;2852:10;;23365:17;;-1:-1:-1;;;;;2852:10:0;2838;:24;2830:33;;;;;;-1:-1:-1;;;;;23257:13:0;;;23253:100;;;23287:10;;;:33;;-1:-1:-1;;;;;23287:10:0;;;;23307:4;:12;23287:33;;;;;23307:12;;23287:33;:10;:33;23307:12;23287:10;:33;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23287:33:0;23335:7;;23253:100;23430:21;;;-1:-1:-1;;;;;23430:21:0;;23446:4;23430:21;;;;;;23397:6;;-1:-1:-1;;;;;;23430:15:0;;;-1:-1:-1;;23430:21:0;;;;;;;;;;;;;;-1:-1:-1;23430:15:0;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;23430:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23430:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23430:21:0;23477:10;;;23462:35;;;-1:-1:-1;;;;;23462:35:0;;-1:-1:-1;;;;;23477:10:0;;;23462:35;;;;;;;;;;;;23430:21;;-1:-1:-1;23462:14:0;;;;-1:-1:-1;;23462:35:0;;;;;23430:21;;23462:35;;;;;;;;;;;:14;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;23462:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23462:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;23530:10:0;;23508:42;;;;;;;;-1:-1:-1;;;;;23530:10:0;;;;23508:42;;;;;;;;;23462:35;23508:42;;;2874:1;23183:375;;;:::o;5536:38::-;;;;;;-1:-1:-1;;;;;5536:38:0;;:::o;19686:126::-;2852:10;;-1:-1:-1;;;;;2852:10:0;2838;:24;2830:33;;;;;;19768:16;:36;;-1:-1:-1;;19768:36:0;;;;;;;;;;19686:126::o;2891:25::-;;;-1:-1:-1;;;;;2891:25:0;;:::o;9105:1539::-;9184:4;;;9205:12;;9201:56;;;9241:4;9234:11;;;;9201:56;9275:19;;9297:12;-1:-1:-1;9267:43:0;;;;;;-1:-1:-1;;;;;9400:8:0;;;;;;9399:36;;-1:-1:-1;9429:4:0;-1:-1:-1;;;;;9414:20:0;;;;9399:36;9391:45;;;;;;;;9596:32;9608:5;9615:12;9596:11;:32::i;:::-;9570:58;;9665:7;9643:19;:29;9639:74;;;9696:5;9689:12;;;;9639:74;9794:10;;9783:22;;-1:-1:-1;;;;;9794:10:0;9783;:22::i;:::-;9779:201;;;9916:10;;;9899:60;;;-1:-1:-1;;;;;9899:60:0;;-1:-1:-1;;;;;9899:60:0;;;;;;;;;;;;;;;;;;;;;;9916:10;;;;;-1:-1:-1;;9899:60:0;;;;;;;;;;;;;;;;;;9916:10;9899:60;;;5:2:-1;;;;30:1;27;20:12;5:2;9899:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9899:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9899:60:0;:68;;9963:4;9899:68;9891:77;;;;;;-1:-1:-1;;;;;10117:15:0;;;;;;:8;:15;;;;;10100:64;;10134:29;;;10100:16;:64::i;:::-;10310:30;10322:3;10327:12;10310:11;:30::i;:::-;10286:54;-1:-1:-1;10359:27:0;;;:48;-1:-1:-1;10359:48:0;10351:57;;;;;;-1:-1:-1;;;;;10458:13:0;;;;;;:8;:13;;;;;10441:60;;10473:27;;;10441:16;:60::i;:::-;-1:-1:-1;;;;;;;;10585:29:0;;;;;;;;-1:-1:-1;;;;;;;;10585:29:0;;;;;;;;;;;;;;;;10632:4;10625:11;;9105:1539;;;;;;;;:::o;22285:97::-;22337:4;22365:1;22361;:5;:13;;22373:1;22361:13;;;-1:-1:-1;22369:1:0;;22285:97;-1:-1:-1;22285:97:0:o;20196:807::-;20290:4;20666:8;20689;20764;20311:11;:18;;;;20333:1;20311:23;20307:50;;;20356:1;20349:8;;;;20307:50;20438:18;;;;-1:-1:-1;;20438:20:0;;;20426:33;;;;;;;;;;;;;;;:43;-1:-1:-1;;;;;20426:43:0;20416:53;;20412:118;;20503:18;;;;-1:-1:-1;;20503:20:0;;;20491:33;;;;;;;;;;;;;;;:39;-1:-1:-1;;;20491:39:0;;-1:-1:-1;;;;;20491:39:0;;-1:-1:-1;20484:46:0;;20412:118;20554:11;20566:1;20554:14;;;;;;;;;;;;;;;;;;;:24;-1:-1:-1;;;;;20554:24:0;20545:33;;20541:60;;;20600:1;20593:8;;;;20541:60;20700:18;;20677:1;;-1:-1:-1;;;20700:20:0;;-1:-1:-1;20731:225:0;20744:3;20738;:9;20731:225;;;20793:1;20788;20776:9;;;:13;20775:19;20764:30;;20841:6;20813:11;20825:3;20813:16;;;;;;;;;;;;;;;;;;;:26;-1:-1:-1;;;;;20813:26:0;:34;20809:136;;20874:3;20868:9;;20809:136;;;20928:1;20924:3;:5;20918:11;;20809:136;20731:225;;;20973:11;20985:3;20973:16;;;;;;;;;;;;;;;;;;;:22;-1:-1:-1;;;20973:22:0;;-1:-1:-1;;;;;20973:22:0;;-1:-1:-1;20196:807:0;;;;;;;;:::o;21227:561::-;21325:18;;21432:32;;;;21325:23;;21324:91;;-1:-1:-1;21366:18:0;;21402:12;;21366:18;;-1:-1:-1;;21366:22:0;;;21354:35;;;;;;;;;;;;;;;:45;-1:-1:-1;;;;;21354:45:0;:60;21324:91;21320:461;;;21479:20;;21467:11;;21479:20;21467:11;21479:20;;;;:::i;:::-;21467:33;;;;;;;;;;;;;;;;;21515:47;;-1:-1:-1;;;;;;21515:47:0;21549:12;-1:-1:-1;;;;;21515:47:0;;;;;;;21577:37;;;;;-1:-1:-1;;;21577:37:0;;;;21467:33;-1:-1:-1;21320:461:0;;;21694:18;;;;-1:-1:-1;;21694:22:0;;;21682:35;;;;;;;;;;;;;;;21732:37;;-1:-1:-1;;;;;21732:37:0;;;;;;-1:-1:-1;;;21732:37:0;;;;21682:35;-1:-1:-1;21320:461:0;21227:561;;;;:::o;3643:20346::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://d059d572cd1c49b4fece9a0331fe4b2956f19d2f7a900902a8ba56bdb2c3e3fa
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.