Contract Overview
Latest 25 from a total of 18171 transactions
Contract Name:
GFS
Compiler Version
v0.5.5+commit.47a71e8f
pragma solidity ^0.5.0; interface DSAuthority { function canCall( address src, address dst, bytes4 sig ) external view returns (bool); }
pragma solidity ^0.5.0; import "../math/SafeMath.sol"; import "../ownership/DSAuth.sol"; contract DSToken is DSAuth { using SafeMath for uint256; bool public _stopped; uint256 internal _totalSupply; mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) internal _allowances; string private _name; string private _symbol; constructor(string memory symbol_, string memory name_) public { _symbol = symbol_; _name = name_; } event Approval(address indexed src, address indexed guy, uint256 wad); event Transfer(address indexed src, address indexed dst, uint256 wad); event Mint(address indexed guy, uint256 wad); event Burn(address indexed guy, uint256 wad); event Stop(); event Start(); /** * @dev Returns the name of the token. */ function name() public view returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view returns (uint256) { require( account != address(0), "ERC721: balance query for the zero address" ); return _balances[account]; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view returns (uint256) { return _allowances[owner][spender]; } modifier stoppable { require(!_stopped, "ds-stop-is-stopped"); _; } function approve(address guy) external returns (bool) { return approve(guy, uint256(-1)); } function approve(address guy, uint256 wad) public stoppable returns (bool) { require(guy != address(0), "ERC20: approve to the zero address"); _allowances[msg.sender][guy] = wad; emit Approval(msg.sender, guy, wad); return true; } function transfer(address dst, uint256 wad) external returns (bool) { return transferFrom(msg.sender, dst, wad); } function transferFrom( address src, address dst, uint256 wad ) public stoppable returns (bool) { if (src != msg.sender && _allowances[src][msg.sender] != uint256(-1)) { require( _allowances[src][msg.sender] >= wad, "ds-token-insufficient-approval" ); _allowances[src][msg.sender] = _allowances[src][msg.sender].sub( wad ); } require(_balances[src] >= wad, "ds-token-insufficient-balance"); _balances[src] = _balances[src].sub(wad); _balances[dst] = _balances[dst].add(wad); emit Transfer(src, dst, wad); return true; } function push(address dst, uint256 wad) external { transferFrom(msg.sender, dst, wad); } function pull(address src, uint256 wad) external { transferFrom(src, msg.sender, wad); } function move( address src, address dst, uint256 wad ) external { transferFrom(src, dst, wad); } function mint(uint256 wad) external { mint(msg.sender, wad); } function burn(uint256 wad) external { burn(msg.sender, wad); } function mint(address guy, uint256 wad) public auth stoppable { _balances[guy] = _balances[guy].add(wad); _totalSupply = _totalSupply.add(wad); emit Mint(guy, wad); } function burn(address guy, uint256 wad) public auth stoppable { if (guy != msg.sender && _allowances[guy][msg.sender] != uint256(-1)) { require( _allowances[guy][msg.sender] >= wad, "ds-token-insufficient-approval" ); _allowances[guy][msg.sender] = _allowances[guy][msg.sender].sub( wad ); } require(_balances[guy] >= wad, "ds-token-insufficient-balance"); _balances[guy] = _balances[guy].sub(wad); _totalSupply = _totalSupply.sub(wad); emit Burn(guy, wad); } function destroy(address from_, uint256 amount_) public auth stoppable { // do not require allowance require(_balances[from_] >= amount_, "ds-token-insufficient-balance"); _balances[from_] = _balances[from_].sub(amount_); _totalSupply = _totalSupply.sub(amount_); emit Burn(from_, amount_); emit Transfer(from_, address(0), amount_); } function dsStop() public auth { _stopped = true; emit Stop(); } function start() public auth { _stopped = false; emit Start(); } }
pragma solidity ^0.5.0; contract IApproveAndCallFallBack { function receiveApproval( address from, uint256 amount_, address token_, bytes memory data_ ) public; }
pragma solidity <0.6.0 >=0.4.21; interface IERC223 { function transfer( address to, uint256 amount, bytes calldata data ) external returns (bool ok); function transferFrom( address from, address to, uint256 amount, bytes calldata data ) external returns (bool ok); event ERC223Transfer( address indexed from, address indexed to, uint256 amount, bytes data ); }
pragma solidity ^0.5.0; /// @title IERC223Receiving - Standard interface implementation for compatibility with ERC223 tokens. interface IERC223Receiving { /// @dev Function that is called when a user or another contract wants to transfer funds. /// @param from_ Transaction initiator, analogue of msg.sender /// @param value_ Number of tokens to transfer. /// @param data_ Data containig a function signature and/or parameters function tokenFallback( address from_, uint256 value_, bytes calldata data_ ) external; }
pragma solidity ^0.5.0; /// @dev The token _controller contract must implement these functions contract 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_, bytes4 sig, bytes memory data ) public 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_, uint256 amount_ ) public 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_, uint256 amount_ ) public returns (bool); }
pragma solidity ^0.5.0; import "./DSAuthority.sol"; contract DSAuthEvents { event LogSetAuthority(address indexed authority); event LogSetOwner(address indexed owner); } contract DSAuth is DSAuthEvents { DSAuthority public _authority; address public _owner; constructor() public { _owner = msg.sender; emit LogSetOwner(msg.sender); } function setOwner(address owner_) public auth { _owner = owner_; emit LogSetOwner(_owner); } function setAuthority(DSAuthority authority_) public auth { _authority = authority_; emit LogSetAuthority(address(_authority)); } modifier auth { require(isAuthorized(msg.sender, msg.sig), "ds-auth-unauthorized"); _; } function isAuthorized(address src, bytes4 sig) internal view returns (bool) { if (src == address(this)) { return true; } else if (src == _owner) { return true; } else if (_authority == DSAuthority(address(0))) { return false; } else { return _authority.canCall(src, address(this), sig); } } }
pragma solidity <0.6.0 >=0.4.21; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ /*@CTK SafeMath_mul @tag spec @post __reverted == __has_assertion_failure @post __has_assertion_failure == __has_overflow @post __reverted == false -> c == a * b @post msg == msg__post */ /* CertiK Smart Labelling, for more details visit: https://certik.org */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ /*@CTK SafeMath_div @tag spec @pre b != 0 @post __reverted == __has_assertion_failure @post __has_overflow == true -> __has_assertion_failure == true @post __reverted == false -> __return == a / b @post msg == msg__post */ /* CertiK Smart Labelling, for more details visit: https://certik.org */ 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). */ /*@CTK SafeMath_sub @tag spec @post __reverted == __has_assertion_failure @post __has_overflow == true -> __has_assertion_failure == true @post __reverted == false -> __return == a - b @post msg == msg__post */ /* CertiK Smart Labelling, for more details visit: https://certik.org */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ /*@CTK SafeMath_add @tag spec @post __reverted == __has_assertion_failure @post __has_assertion_failure == __has_overflow @post __reverted == false -> c == a + b @post msg == msg__post */ /* CertiK Smart Labelling, for more details visit: https://certik.org */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } }
pragma solidity <0.6.0 >=0.4.21; import "./IERC20Basic.sol"; /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract IERC20 is IERC20Basic { function name() external view returns (string memory); function symbol() external view returns (string memory); 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 ); }
pragma solidity <0.6.0 >=0.4.21; /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ contract IERC20Basic { 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); }
pragma solidity <0.6.0 >=0.4.21; interface ISmartToken { function transferOwnership(address newOwner_) external; function acceptOwnership() external; function disableTransfers(bool disable_) external; function issue(address to_, uint256 amount_) external; }
pragma solidity ^0.5.0; import "./math/SafeMath.sol"; import "./token/IERC20.sol"; import "./token/IERC223.sol"; import "./token/ISmartToken.sol"; import "./token/DSToken.sol"; import "./token/IApproveAndCallFallBack.sol"; import "./token/ITokenController.sol"; import "./token/IERC223Receiving.sol"; contract GFS is DSToken("GFS", "Game Fantasy Star"), IERC223, ISmartToken { using SafeMath for uint256; address private _newOwner; bool public _transfersEnabled = true; // true if transfer/transferFrom are enabled, false if not uint256 private _cap; address private _controller; // allows execution only when transfers aren't disabled modifier transfersAllowed() { assert(_transfersEnabled); _; } constructor() public { _controller = msg.sender; uint256 perCoin = 1e18; _cap = perCoin.mul(3000 * 10000); } ////////// // IOwned Methods ////////// /** @dev allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner @param newOwner_ new contract owner */ function transferOwnership(address newOwner_) public auth { require(newOwner_ != _owner, "GFS-already-an-owner"); _newOwner = newOwner_; } /** @dev used by a new owner to accept an ownership transfer */ function acceptOwnership() public { require(msg.sender == _newOwner, "GFS-not-new-owner"); _owner = _newOwner; _newOwner = address(0); } ////////// // SmartToken Methods ////////// /** @dev disables/enables transfers can only be called by the contract owner @param disable_ true to disable transfers, false to enable them */ function disableTransfers(bool disable_) public auth { _transfersEnabled = !disable_; } function issue(address to_, uint256 amount_) public auth stoppable { mint(to_, amount_); } ////////// // Cap Methods ////////// function cap() public view returns (uint256) { return _cap; } ////////// // Cap Methods ////////// function changeCap(uint256 newCap_) public auth { require(newCap_ >= totalSupply()); _cap = newCap_; } ////////// // Controller Methods ////////// /// @notice Changes the _controller of the contract /// @param newController_ The new _controller of the contract function changeController(address newController_) public auth { _controller = newController_; } /// @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 transfersAllowed returns (bool success) { // Alerts the token _controller of the transfer if (isContract(_controller)) { if (!ITokenController(_controller).onTransfer(from_, to_, amount_)) revert(); } success = super.transferFrom(from_, to_, amount_); } /* * ERC 223 * Added support for the ERC 223 "tokenFallback" method in a "transfer" function with a payload. */ function transferFrom( address from_, address to_, uint256 amount_, bytes memory data_ ) public transfersAllowed returns (bool success) { // Alerts the token _controller of the transfer if (isContract(_controller)) { if (!ITokenController(_controller).onTransfer(from_, to_, amount_)) revert(); } require( super.transferFrom(from_, to_, amount_), "GFS-insufficient-balance" ); if (isContract(to_)) { IERC223Receiving receiver = IERC223Receiving(to_); receiver.tokenFallback(from_, amount_, data_); } emit ERC223Transfer(from_, to_, amount_, data_); return true; } /* * ERC 223 * Added support for the ERC 223 "tokenFallback" method in a "transfer" function with a payload. * https://github.com/ethereum/EIPs/issues/223 * function transfer(address to_, uint256 value_, bytes memory data_) public returns (bool success); */ /// @notice Send `value_` tokens to `to_` from `msg.sender` and trigger /// tokenFallback if sender is a contract. /// @dev Function that is called when a user or another contract wants to transfer funds. /// @param to_ Address of token receiver. /// @param amount_ Number of tokens to transfer. /// @param data_ Data to be sent to tokenFallback /// @return Returns success of function call. function transfer( address to_, uint256 amount_, bytes memory data_ ) public returns (bool success) { return transferFrom(msg.sender, to_, amount_, data_); } /// @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) { // Alerts the token _controller of the approve function call if (isContract(_controller)) { if ( !ITokenController(_controller).onApprove( msg.sender, spender_, amount_ ) ) revert(); } return super.approve(spender_, amount_); } function mint(address guy_, uint256 wad_) public auth stoppable { require(totalSupply().add(wad_) <= _cap, "GFS-insufficient-cap"); super.mint(guy_, wad_); emit Transfer(address(0), guy_, wad_); } function burn(address guy_, uint256 wad_) public auth stoppable { super.burn(guy_, wad_); emit Transfer(guy_, address(0), wad_); } /// @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( address spender_, uint256 amount_, bytes memory extraData_ ) public returns (bool success) { if (!approve(spender_, amount_)) revert(); IApproveAndCallFallBack(spender_).receiveApproval( msg.sender, amount_, address(this), extraData_ ); return true; } /// @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_) internal view returns (bool) { uint256 size; if (addr_ == address(0)) return false; assembly { size := extcodesize(addr_) } return size > 0; } /// @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 { if (isContract(_controller)) { if ( !ITokenController(_controller).proxyPayment.value(msg.value)( msg.sender, msg.sig, msg.data ) ) revert(); } else { revert(); } } ////////// // Safety Methods ////////// /// @notice This method can be used by the owner 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_) public auth { if (token_ == address(0)) { address(msg.sender).transfer(address(this).balance); return; } IERC20 token = IERC20(token_); uint256 balance = token.balanceOf(address(this)); token.transfer(address(msg.sender), balance); emit ClaimedTokens(token_, address(msg.sender), balance); } function withdrawTokens( IERC20 token_, address to_, uint256 amount_ ) public auth { assert(token_.transfer(to_, amount_)); } //////////////// // Events //////////////// event ClaimedTokens( address indexed token_, address indexed controller_, uint256 amount_ ); }
[{"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":false,"inputs":[{"name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_stopped","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"disable_","type":"bool"}],"name":"disableTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from_","type":"address"},{"name":"to_","type":"address"},{"name":"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":"pure","type":"function"},{"constant":true,"inputs":[],"name":"cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newController_","type":"address"}],"name":"changeController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"guy_","type":"address"},{"name":"wad_","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"wad","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token_","type":"address"},{"name":"to_","type":"address"},{"name":"amount_","type":"uint256"}],"name":"withdrawTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"authority_","type":"address"}],"name":"setAuthority","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newCap_","type":"uint256"}],"name":"changeCap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"dsStop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_transfersEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to_","type":"address"},{"name":"amount_","type":"uint256"}],"name":"issue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"guy_","type":"address"},{"name":"wad_","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"wad","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from_","type":"address"},{"name":"amount_","type":"uint256"}],"name":"destroy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from_","type":"address"},{"name":"to_","type":"address"},{"name":"amount_","type":"uint256"},{"name":"data_","type":"bytes"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"push","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"src","type":"address"},{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"move","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to_","type":"address"},{"name":"amount_","type":"uint256"},{"name":"data_","type":"bytes"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"start","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_authority","outputs":[{"name":"","type":"address"}],"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":"guy","type":"address"}],"name":"approve","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":"","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":false,"inputs":[{"name":"src","type":"address"},{"name":"wad","type":"uint256"}],"name":"pull","outputs":[],"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":"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"},{"indexed":false,"name":"data","type":"bytes"}],"name":"ERC223Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"src","type":"address"},{"indexed":true,"name":"guy","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"src","type":"address"},{"indexed":true,"name":"dst","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"guy","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"guy","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[],"name":"Stop","type":"event"},{"anonymous":false,"inputs":[],"name":"Start","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"}]
Contract Creation Code
6080604052600436106102255760003560e01c8063867904b411610123578063bb35783b116100ab578063daea85c51161006f578063daea85c514610b19578063dd62ed3e14610b4c578063df8de3e714610b87578063f2d5d56b14610bba578063f2fde38b14610bf357610225565b8063bb35783b1461091c578063be45fd621461095f578063be9a655514610a27578063c2205ee114610a3c578063cae9ca5114610a5157610225565b8063a24835d1116100f2578063a24835d11461076d578063a9059cbb146107a6578063ab67aa58146107df578063b2bdfa7b146108b2578063b753a98c146108e357610225565b8063867904b4146106bc57806395d89b41146106f55780639dc29fac1461070a578063a0712d681461074357610225565b80633cebb823116101b157806379ba50971161017557806379ba5097146106205780637a9e5e4b14610635578063800edb9d1461066857806383d5978a1461069257806385438bc0146106a757610225565b80633cebb8231461051457806340c10f191461054757806342966c68146105805780635e35359e146105aa57806370a08231146105ed57610225565b80631608f18f116101f85780631608f18f1461043e57806318160ddd1461046a57806323b872dd14610491578063313ce567146104d4578063355274ea146104ff57610225565b806306fdde031461031f578063095ea7b3146103a957806313af4035146103f65780631417629714610429575b60095461023a906001600160a01b0316610c26565b1561031857600954604051600160e11b632535112f0281523360048201818152600080356001600160e01b0319166024850181905260606044860190815236606487018190526001600160a01b0390971696634a6a225e96349695939493919290608401848480828437600081840152601f19601f820116905080830192505050955050505050506020604051808303818588803b1580156102db57600080fd5b505af11580156102ef573d6000803e3d6000fd5b50505050506040513d602081101561030657600080fd5b5051151561031357600080fd5b61031d565b600080fd5b005b34801561032b57600080fd5b50610334610c4f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561036e578181015183820152602001610356565b50505050905090810190601f16801561039b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103b557600080fd5b506103e2600480360360408110156103cc57600080fd5b506001600160a01b038135169060200135610ce5565b604080519115158252519081900360200190f35b34801561040257600080fd5b5061031d6004803603602081101561041957600080fd5b50356001600160a01b0316610dab565b34801561043557600080fd5b506103e2610e55565b34801561044a57600080fd5b5061031d6004803603602081101561046157600080fd5b50351515610e65565b34801561047657600080fd5b5061047f610edd565b60408051918252519081900360200190f35b34801561049d57600080fd5b506103e2600480360360608110156104b457600080fd5b506001600160a01b03813581169160208101359091169060400135610ee3565b3480156104e057600080fd5b506104e9610fc0565b6040805160ff9092168252519081900360200190f35b34801561050b57600080fd5b5061047f610fc5565b34801561052057600080fd5b5061031d6004803603602081101561053757600080fd5b50356001600160a01b0316610fcb565b34801561055357600080fd5b5061031d6004803603604081101561056a57600080fd5b506001600160a01b038135169060200135611047565b34801561058c57600080fd5b5061031d600480360360208110156105a357600080fd5b503561119f565b3480156105b657600080fd5b5061031d600480360360608110156105cd57600080fd5b506001600160a01b038135811691602081013590911690604001356111ac565b3480156105f957600080fd5b5061047f6004803603602081101561061057600080fd5b50356001600160a01b031661129f565b34801561062c57600080fd5b5061031d611307565b34801561064157600080fd5b5061031d6004803603602081101561065857600080fd5b50356001600160a01b0316611390565b34801561067457600080fd5b5061031d6004803603602081101561068b57600080fd5b5035611436565b34801561069e57600080fd5b5061031d6114a9565b3480156106b357600080fd5b506103e2611544565b3480156106c857600080fd5b5061031d600480360360408110156106df57600080fd5b506001600160a01b038135169060200135611554565b34801561070157600080fd5b5061033461160c565b34801561071657600080fd5b5061031d6004803603604081101561072d57600080fd5b506001600160a01b03813516906020013561166d565b34801561074f57600080fd5b5061031d6004803603602081101561076657600080fd5b5035611754565b34801561077957600080fd5b5061031d6004803603604081101561079057600080fd5b506001600160a01b03813516906020013561175e565b3480156107b257600080fd5b506103e2600480360360408110156107c957600080fd5b506001600160a01b038135169060200135611942565b3480156107eb57600080fd5b506103e26004803603608081101561080257600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561083d57600080fd5b82018360208201111561084f57600080fd5b8035906020019184600183028401116401000000008311171561087157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061194f945050505050565b3480156108be57600080fd5b506108c7611c24565b604080516001600160a01b039092168252519081900360200190f35b3480156108ef57600080fd5b5061031d6004803603604081101561090657600080fd5b506001600160a01b038135169060200135611c33565b34801561092857600080fd5b5061031d6004803603606081101561093f57600080fd5b506001600160a01b03813581169160208101359091169060400135611c3e565b34801561096b57600080fd5b506103e26004803603606081101561098257600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156109b257600080fd5b8201836020820111156109c457600080fd5b803590602001918460018302840111640100000000831117156109e657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611c4f945050505050565b348015610a3357600080fd5b5061031d611c5d565b348015610a4857600080fd5b506108c7611cf2565b348015610a5d57600080fd5b506103e260048036036060811015610a7457600080fd5b6001600160a01b0382351691602081013591810190606081016040820135640100000000811115610aa457600080fd5b820183602082011115610ab657600080fd5b80359060200191846001830284011164010000000083111715610ad857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611d01945050505050565b348015610b2557600080fd5b506103e260048036036020811015610b3c57600080fd5b50356001600160a01b0316611e06565b348015610b5857600080fd5b5061047f60048036036040811015610b6f57600080fd5b506001600160a01b0381358116916020013516611e14565b348015610b9357600080fd5b5061031d60048036036020811015610baa57600080fd5b50356001600160a01b0316611e3f565b348015610bc657600080fd5b5061031d60048036036040811015610bdd57600080fd5b506001600160a01b03813516906020013561201d565b348015610bff57600080fd5b5061031d60048036036020811015610c1657600080fd5b50356001600160a01b0316612028565b6000806001600160a01b0383161515610c43576000915050610c4a565b5050803b15155b919050565b60058054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610cdb5780601f10610cb057610100808354040283529160200191610cdb565b820191906000526020600020905b815481529060010190602001808311610cbe57829003601f168201915b5050505050905090565b600954600090610cfd906001600160a01b0316610c26565b15610d985760095460408051600160e01b63da682aeb0281523360048201526001600160a01b038681166024830152604482018690529151919092169163da682aeb9160648083019260209291908290030181600087803b158015610d6157600080fd5b505af1158015610d75573d6000803e3d6000fd5b505050506040513d6020811015610d8b57600080fd5b50511515610d9857600080fd5b610da2838361210a565b90505b92915050565b610dc1336000356001600160e01b03191661220e565b1515610e055760408051600160e51b62461bcd0281526020600482015260146024820152600080516020612a67833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0383811691909117918290556040519116907fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a250565b600154600160a01b900460ff1681565b610e7b336000356001600160e01b03191661220e565b1515610ebf5760408051600160e51b62461bcd0281526020600482015260146024820152600080516020612a67833981519152604482015290519081900360640190fd5b60078054600160a01b60ff0219169115600160a01b02919091179055565b60025490565b600754600090600160a01b900460ff161515610efb57fe5b600954610f10906001600160a01b0316610c26565b15610fad5760095460408051600160e01b634a3931490281526001600160a01b03878116600483015286811660248301526044820186905291519190921691634a3931499160648083019260209291908290030181600087803b158015610f7657600080fd5b505af1158015610f8a573d6000803e3d6000fd5b505050506040513d6020811015610fa057600080fd5b50511515610fad57600080fd5b610fb88484846122fa565b949350505050565b601290565b60085490565b610fe1336000356001600160e01b03191661220e565b15156110255760408051600160e51b62461bcd0281526020600482015260146024820152600080516020612a67833981519152604482015290519081900360640190fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b61105d336000356001600160e01b03191661220e565b15156110a15760408051600160e51b62461bcd0281526020600482015260146024820152600080516020612a67833981519152604482015290519081900360640190fd5b600154600160a01b900460ff16156110f15760408051600160e51b62461bcd0281526020600482015260126024820152600080516020612a47833981519152604482015290519081900360640190fd5b60085461110c82611100610edd565b9063ffffffff61258116565b11156111625760408051600160e51b62461bcd02815260206004820152601460248201527f4746532d696e73756666696369656e742d636170000000000000000000000000604482015290519081900360640190fd5b61116c828261258e565b6040805182815290516001600160a01b03841691600091600080516020612a278339815191529181900360200190a35050565b6111a9338261166d565b50565b6111c2336000356001600160e01b03191661220e565b15156112065760408051600160e51b62461bcd0281526020600482015260146024820152600080516020612a67833981519152604482015290519081900360640190fd5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561126657600080fd5b505af115801561127a573d6000803e3d6000fd5b505050506040513d602081101561129057600080fd5b5051151561129a57fe5b505050565b60006001600160a01b03821615156112eb57604051600160e51b62461bcd02815260040180806020018281038252602a8152602001806129fd602a913960400191505060405180910390fd5b506001600160a01b031660009081526003602052604090205490565b6007546001600160a01b031633146113695760408051600160e51b62461bcd02815260206004820152601160248201527f4746532d6e6f742d6e65772d6f776e6572000000000000000000000000000000604482015290519081900360640190fd5b60078054600180546001600160a01b03199081166001600160a01b03841617909155169055565b6113a6336000356001600160e01b03191661220e565b15156113ea5760408051600160e51b62461bcd0281526020600482015260146024820152600080516020612a67833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b03838116919091178083556040519116917f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada491a250565b61144c336000356001600160e01b03191661220e565b15156114905760408051600160e51b62461bcd0281526020600482015260146024820152600080516020612a67833981519152604482015290519081900360640190fd5b611498610edd565b8110156114a457600080fd5b600855565b6114bf336000356001600160e01b03191661220e565b15156115035760408051600160e51b62461bcd0281526020600482015260146024820152600080516020612a67833981519152604482015290519081900360640190fd5b60018054600160a01b60ff021916600160a01b1790556040517fbedf0f4abfe86d4ffad593d9607fe70e83ea706033d44d24b3b6283cf3fc4f6b90600090a1565b600754600160a01b900460ff1681565b61156a336000356001600160e01b03191661220e565b15156115ae5760408051600160e51b62461bcd0281526020600482015260146024820152600080516020612a67833981519152604482015290519081900360640190fd5b600154600160a01b900460ff16156115fe5760408051600160e51b62461bcd0281526020600482015260126024820152600080516020612a47833981519152604482015290519081900360640190fd5b6116088282611047565b5050565b60068054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610cdb5780601f10610cb057610100808354040283529160200191610cdb565b611683336000356001600160e01b03191661220e565b15156116c75760408051600160e51b62461bcd0281526020600482015260146024820152600080516020612a67833981519152604482015290519081900360640190fd5b600154600160a01b900460ff16156117175760408051600160e51b62461bcd0281526020600482015260126024820152600080516020612a47833981519152604482015290519081900360640190fd5b61172182826126d3565b6040805182815290516000916001600160a01b03851691600080516020612a278339815191529181900360200190a35050565b6111a93382611047565b611774336000356001600160e01b03191661220e565b15156117b85760408051600160e51b62461bcd0281526020600482015260146024820152600080516020612a67833981519152604482015290519081900360640190fd5b600154600160a01b900460ff16156118085760408051600160e51b62461bcd0281526020600482015260126024820152600080516020612a47833981519152604482015290519081900360640190fd5b6001600160a01b0382166000908152600360205260409020548111156118785760408051600160e51b62461bcd02815260206004820152601d60248201527f64732d746f6b656e2d696e73756666696369656e742d62616c616e6365000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600360205260409020546118a1908263ffffffff61299f16565b6001600160a01b0383166000908152600360205260409020556002546118cd908263ffffffff61299f16565b6002556040805182815290516001600160a01b038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a26040805182815290516000916001600160a01b03851691600080516020612a278339815191529181900360200190a35050565b6000610da2338484610ee3565b600754600090600160a01b900460ff16151561196757fe5b60095461197c906001600160a01b0316610c26565b15611a195760095460408051600160e01b634a3931490281526001600160a01b03888116600483015287811660248301526044820187905291519190921691634a3931499160648083019260209291908290030181600087803b1580156119e257600080fd5b505af11580156119f6573d6000803e3d6000fd5b505050506040513d6020811015611a0c57600080fd5b50511515611a1957600080fd5b611a248585856122fa565b1515611a7a5760408051600160e51b62461bcd02815260206004820152601860248201527f4746532d696e73756666696369656e742d62616c616e63650000000000000000604482015290519081900360640190fd5b611a8384610c26565b15611b6457604051600160e11b63607705c50281526001600160a01b03868116600483019081526024830186905260606044840190815285516064850152855188949385169363c0ee0b8a938b938a938a9360840190602085019080838360005b83811015611afc578181015183820152602001611ae4565b50505050905090810190601f168015611b295780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611b4a57600080fd5b505af1158015611b5e573d6000803e3d6000fd5b50505050505b836001600160a01b0316856001600160a01b03167f9bfafdc2ae8835972d7b64ef3f8f307165ac22ceffde4a742c52da5487f45fd185856040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611bde578181015183820152602001611bc6565b50505050905090810190601f168015611c0b5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3506001949350505050565b6001546001600160a01b031681565b61129a338383610ee3565b611c49838383610ee3565b50505050565b6000610fb83385858561194f565b611c73336000356001600160e01b03191661220e565b1515611cb75760408051600160e51b62461bcd0281526020600482015260146024820152600080516020612a67833981519152604482015290519081900360640190fd5b60018054600160a01b60ff02191690556040517f1b55ba3aa851a46be3b365aee5b5c140edd620d578922f3e8466d2cbd96f954b90600090a1565b6000546001600160a01b031681565b6000611d0d8484610ce5565b1515611d1857600080fd5b604051600160e01b638f4ffcb102815233600482018181526024830186905230604484018190526080606485019081528651608486015286516001600160a01b038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b83811015611d95578181015183820152602001611d7d565b50505050905090810190601f168015611dc25780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015611de457600080fd5b505af1158015611df8573d6000803e3d6000fd5b506001979650505050505050565b6000610da582600019610ce5565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b611e55336000356001600160e01b03191661220e565b1515611e995760408051600160e51b62461bcd0281526020600482015260146024820152600080516020612a67833981519152604482015290519081900360640190fd5b6001600160a01b0381161515611edc576040513390303180156108fc02916000818181858888f19350505050158015611ed6573d6000803e3d6000fd5b506111a9565b60408051600160e01b6370a08231028152306004820152905182916000916001600160a01b038416916370a08231916024808301926020929190829003018186803b158015611f2a57600080fd5b505afa158015611f3e573d6000803e3d6000fd5b505050506040513d6020811015611f5457600080fd5b505160408051600160e01b63a9059cbb0281523360048201526024810183905290519192506001600160a01b0384169163a9059cbb916044808201926020929091908290030181600087803b158015611fac57600080fd5b505af1158015611fc0573d6000803e3d6000fd5b505050506040513d6020811015611fd657600080fd5b505060408051828152905133916001600160a01b038616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c9181900360200190a3505050565b61129a823383610ee3565b61203e336000356001600160e01b03191661220e565b15156120825760408051600160e51b62461bcd0281526020600482015260146024820152600080516020612a67833981519152604482015290519081900360640190fd5b6001546001600160a01b03828116911614156120e85760408051600160e51b62461bcd02815260206004820152601460248201527f4746532d616c72656164792d616e2d6f776e6572000000000000000000000000604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b600154600090600160a01b900460ff161561215d5760408051600160e51b62461bcd0281526020600482015260126024820152600080516020612a47833981519152604482015290519081900360640190fd5b6001600160a01b03831615156121a757604051600160e51b62461bcd0281526004018080602001828103825260228152602001806129db6022913960400191505060405180910390fd5b3360008181526004602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60006001600160a01b03831630141561222957506001610da5565b6001546001600160a01b038481169116141561224757506001610da5565b6000546001600160a01b0316151561226157506000610da5565b60005460408051600160e01b63b70096130281526001600160a01b0386811660048301523060248301526001600160e01b0319861660448301529151919092169163b7009613916064808301926020929190829003018186803b1580156122c757600080fd5b505afa1580156122db573d6000803e3d6000fd5b505050506040513d60208110156122f157600080fd5b50519050610da5565b600154600090600160a01b900460ff161561234d5760408051600160e51b62461bcd0281526020600482015260126024820152600080516020612a47833981519152604482015290519081900360640190fd5b6001600160a01b038416331480159061238b57506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b15612464576001600160a01b038416600090815260046020908152604080832033845290915290205482111561240b5760408051600160e51b62461bcd02815260206004820152601e60248201527f64732d746f6b656e2d696e73756666696369656e742d617070726f76616c0000604482015290519081900360640190fd5b6001600160a01b038416600090815260046020908152604080832033845290915290205461243f908363ffffffff61299f16565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b6001600160a01b0384166000908152600360205260409020548211156124d45760408051600160e51b62461bcd02815260206004820152601d60248201527f64732d746f6b656e2d696e73756666696369656e742d62616c616e6365000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600360205260409020546124fd908363ffffffff61299f16565b6001600160a01b038086166000908152600360205260408082209390935590851681522054612532908363ffffffff61258116565b6001600160a01b038085166000818152600360209081526040918290209490945580518681529051919392881692600080516020612a2783398151915292918290030190a35060019392505050565b81810182811015610da557fe5b6125a4336000356001600160e01b03191661220e565b15156125e85760408051600160e51b62461bcd0281526020600482015260146024820152600080516020612a67833981519152604482015290519081900360640190fd5b600154600160a01b900460ff16156126385760408051600160e51b62461bcd0281526020600482015260126024820152600080516020612a47833981519152604482015290519081900360640190fd5b6001600160a01b038216600090815260036020526040902054612661908263ffffffff61258116565b6001600160a01b03831660009081526003602052604090205560025461268d908263ffffffff61258116565b6002556040805182815290516001600160a01b038416917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885919081900360200190a25050565b6126e9336000356001600160e01b03191661220e565b151561272d5760408051600160e51b62461bcd0281526020600482015260146024820152600080516020612a67833981519152604482015290519081900360640190fd5b600154600160a01b900460ff161561277d5760408051600160e51b62461bcd0281526020600482015260126024820152600080516020612a47833981519152604482015290519081900360640190fd5b6001600160a01b03821633148015906127bb57506001600160a01b038216600090815260046020908152604080832033845290915290205460001914155b15612894576001600160a01b038216600090815260046020908152604080832033845290915290205481111561283b5760408051600160e51b62461bcd02815260206004820152601e60248201527f64732d746f6b656e2d696e73756666696369656e742d617070726f76616c0000604482015290519081900360640190fd5b6001600160a01b038216600090815260046020908152604080832033845290915290205461286f908263ffffffff61299f16565b6001600160a01b03831660009081526004602090815260408083203384529091529020555b6001600160a01b0382166000908152600360205260409020548111156129045760408051600160e51b62461bcd02815260206004820152601d60248201527f64732d746f6b656e2d696e73756666696369656e742d62616c616e6365000000604482015290519081900360640190fd5b6001600160a01b03821660009081526003602052604090205461292d908263ffffffff61299f16565b6001600160a01b038316600090815260036020526040902055600254612959908263ffffffff61299f16565b6002556040805182815290516001600160a01b038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b6000828211156129ab57fe5b50900390565b60008215156129c257506000610da5565b508181028183828115156129d257fe5b0414610da557fefe45524332303a20617070726f766520746f20746865207a65726f20616464726573734552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef64732d73746f702d69732d73746f70706564000000000000000000000000000064732d617574682d756e617574686f72697a6564000000000000000000000000a165627a7a72305820354a3b7bba26786df1c3076ad61e6a2f5691c774425d69d00d7afb41efce96c20029
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.