More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 344 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 14305951 | 952 days ago | IN | 0 ETH | 0.00218692 | ||||
Transfer | 12143815 | 1288 days ago | IN | 0 ETH | 0.01250859 | ||||
Transfer | 12041098 | 1304 days ago | IN | 0 ETH | 0.01328076 | ||||
Transfer | 10062747 | 1609 days ago | IN | 0 ETH | 0.00166345 | ||||
Transfer | 9870885 | 1639 days ago | IN | 0 ETH | 0.00020482 | ||||
Transfer | 9795681 | 1650 days ago | IN | 0 ETH | 0.00020327 | ||||
Transfer | 9428091 | 1707 days ago | IN | 0 ETH | 0.00036413 | ||||
Transfer | 9428091 | 1707 days ago | IN | 0 ETH | 0.00018024 | ||||
Transfer | 9428088 | 1707 days ago | IN | 0 ETH | 0.00036413 | ||||
Transfer | 9428086 | 1707 days ago | IN | 0 ETH | 0.00036413 | ||||
Transfer | 9428086 | 1707 days ago | IN | 0 ETH | 0.00018024 | ||||
Transfer | 9428084 | 1707 days ago | IN | 0 ETH | 0.00018024 | ||||
Transfer | 9428084 | 1707 days ago | IN | 0 ETH | 0.00018024 | ||||
Transfer | 9428084 | 1707 days ago | IN | 0 ETH | 0.00018024 | ||||
Transfer | 9200236 | 1742 days ago | IN | 0 ETH | 0.00024827 | ||||
Transfer | 9131458 | 1756 days ago | IN | 0 ETH | 0.00027306 | ||||
Transfer | 9131458 | 1756 days ago | IN | 0 ETH | 0.00027306 | ||||
Transfer | 9130952 | 1756 days ago | IN | 0 ETH | 0.00041373 | ||||
Transfer | 9130948 | 1756 days ago | IN | 0 ETH | 0.00041373 | ||||
Transfer | 9084207 | 1765 days ago | IN | 0 ETH | 0.00167952 | ||||
Transfer | 9084043 | 1765 days ago | IN | 0 ETH | 0.00016385 | ||||
Transfer | 8996470 | 1780 days ago | IN | 0 ETH | 0.00080223 | ||||
Transfer | 8757142 | 1819 days ago | IN | 0 ETH | 0.00005944 | ||||
Transfer | 8751871 | 1820 days ago | IN | 0 ETH | 0.00091261 | ||||
Transfer | 8400663 | 1875 days ago | IN | 0 ETH | 0.00080223 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
BbillerToken
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-02-12 */ pragma solidity ^0.4.13; contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function Ownable() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; } } contract BbillerBallot is Ownable { BbillerToken public token; mapping(uint => Issue) public issues; uint issueDoesNotExistFlag = 0; uint issueVotingFlag = 1; uint issueAcceptedFlag = 2; uint issueRejectedFlag = 3; struct Issue { uint votingStartDate; uint votingEndDate; mapping(address => bool) isVoted; uint forCounter; uint againstCounter; uint flag; } event CreateIssue(uint _issueId, uint _votingStartDate, uint _votingEndDate, address indexed creator); event Vote(uint issueId, bool forVote, address indexed voter); event IssueAccepted(uint issueId); event IssueRejected(uint issueId); function BbillerBallot(BbillerToken _token) public { token = _token; } function createIssue(uint issueId, uint _votingStartDate, uint _votingEndDate) public onlyOwner { require(issues[issueId].flag == issueDoesNotExistFlag); Issue memory issue = Issue( {votingEndDate : _votingEndDate, votingStartDate : _votingStartDate, forCounter : 0, againstCounter : 0, flag : issueVotingFlag}); issues[issueId] = issue; CreateIssue(issueId, _votingStartDate, _votingEndDate, msg.sender); } function vote(uint issueId, bool forVote) public { require(token.isTokenUser(msg.sender)); Issue storage issue = issues[issueId]; require(!issue.isVoted[msg.sender]); require(issue.flag == issueVotingFlag); require(issue.votingEndDate > now); require(issue.votingStartDate < now); issue.isVoted[msg.sender] = true; if (forVote) { issue.forCounter++; } else { issue.againstCounter++; } Vote(issueId, forVote, msg.sender); uint tokenUserCounterHalf = getTokenUserCounterHalf(); if (issue.forCounter >= tokenUserCounterHalf) { issue.flag = issueAcceptedFlag; IssueAccepted(issueId); } if (issue.againstCounter >= tokenUserCounterHalf) { issue.flag = issueRejectedFlag; IssueRejected(issueId); } } function getVoteResult(uint issueId) public view returns (string) { Issue storage issue = issues[issueId]; if (issue.flag == issueVotingFlag) { return 'Voting'; } if (issue.flag == issueAcceptedFlag) { return 'Accepted'; } if (issue.flag == issueRejectedFlag) { return 'Rejected'; } if (issue.flag == issueDoesNotExistFlag) { return 'DoesNotExist'; } } function getTokenUserCounterHalf() internal returns (uint) { // for division must be of uint type uint half = 2; uint tokenUserCounter = token.getTokenUserCounter(); uint tokenUserCounterHalf = tokenUserCounter / half; if (tokenUserCounterHalf * half != tokenUserCounter) { // odd case tokenUserCounterHalf++; } return tokenUserCounterHalf; } } contract ERC20Basic { uint256 public totalSupply; 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); } contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public view returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed _owner, address indexed _spender, uint256 _value); } library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { // 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 c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; /** * @dev transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[msg.sender]); // SafeMath.sub will throw if there is not enough balance. balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public view returns (uint256 balance) { return balances[_owner]; } } contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) internal allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); Transfer(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) public view returns (uint256) { return allowed[_owner][_spender]; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _addedValue The amount of tokens to increase the allowance by. */ function increaseApproval(address _spender, uint _addedValue) public returns (bool) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } contract MintableToken is StandardToken, Ownable { event Mint(address indexed _to, uint256 _amount); event MintFinished(); bool public mintingFinished = false; modifier canMint() { require(!mintingFinished); _; } /** * @dev Function to mint tokens * @param _to The address that will receive the minted tokens. * @param _amount The amount of tokens to mint. * @return A boolean that indicates if the operation was successful. */ function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) { totalSupply = totalSupply.add(_amount); balances[_to] = balances[_to].add(_amount); Mint(_to, _amount); Transfer(address(0), _to, _amount); return true; } /** * @dev Function to stop minting new tokens. * @return True if the operation was successful. */ function finishMinting() onlyOwner canMint public returns (bool) { mintingFinished = true; MintFinished(); return true; } } contract BbillerToken is MintableToken { string public symbol = 'BBILLER'; uint public decimals = 18; uint public tokenUserCounter; // number of users that owns this token mapping(address => bool) public isTokenUser; event CountTokenUser(address _tokenUser, uint _tokenUserCounter, bool increment); function getTokenUserCounter() public view returns (uint) { return tokenUserCounter; } function countTokenUser(address tokenUser) internal { if (!isTokenUser[tokenUser]) { isTokenUser[tokenUser] = true; tokenUserCounter++; } CountTokenUser(tokenUser, tokenUserCounter, true); } function transfer(address to, uint256 value) public returns (bool) { bool res = super.transfer(to, value); countTokenUser(to); return res; } function transferFrom(address from, address to, uint256 value) public returns (bool) { bool res = super.transferFrom(from, to, value); countTokenUser(to); if (balanceOf(from) <= 0) { isTokenUser[from] = false; tokenUserCounter--; CountTokenUser(from, tokenUserCounter, false); } return res; } function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) { bool res = super.mint(_to, _amount); countTokenUser(_to); return res; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isTokenUser","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"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":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenUserCounter","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTokenUserCounter","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_tokenUser","type":"address"},{"indexed":false,"name":"_tokenUserCounter","type":"uint256"},{"indexed":false,"name":"increment","type":"bool"}],"name":"CountTokenUser","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"}]
Contract Creation Code
606060409081526003805460a060020a60ff02191690558051908101604052600781527f4242494c4c4552000000000000000000000000000000000000000000000000006020820152600490805161005b929160200190610081565b50601260055560038054600160a060020a03191633600160a060020a031617905561011c565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100c257805160ff19168380011785556100ef565b828001600101855582156100ef579182015b828111156100ef5782518255916020019190600101906100d4565b506100fb9291506100ff565b5090565b61011991905b808211156100fb5760008155600101610105565b90565b610d998061012b6000396000f3006060604052600436106100fb5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b8114610100578063095ea7b31461012757806318160ddd1461014957806323b872dd1461016e578063313ce5671461019657806340c10f19146101a957806364dad32f146101cb57806366188463146101ea57806370a082311461020c5780637d64bcb41461022b5780638da5cb5b1461023e578063908c3a6a1461026d57806395d89b4114610280578063a9059cbb1461030a578063be8dd49a1461032c578063d73dd6231461033f578063dd62ed3e14610361578063f2fde38b14610386575b600080fd5b341561010b57600080fd5b6101136103a7565b604051901515815260200160405180910390f35b341561013257600080fd5b610113600160a060020a03600435166024356103b7565b341561015457600080fd5b61015c610423565b60405190815260200160405180910390f35b341561017957600080fd5b610113600160a060020a0360043581169060243516604435610429565b34156101a157600080fd5b61015c6104d9565b34156101b457600080fd5b610113600160a060020a03600435166024356104df565b34156101d657600080fd5b610113600160a060020a0360043516610532565b34156101f557600080fd5b610113600160a060020a0360043516602435610547565b341561021757600080fd5b61015c600160a060020a0360043516610641565b341561023657600080fd5b61011361065c565b341561024957600080fd5b6102516106e7565b604051600160a060020a03909116815260200160405180910390f35b341561027857600080fd5b61015c6106f6565b341561028b57600080fd5b6102936106fc565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102cf5780820151838201526020016102b7565b50505050905090810190601f1680156102fc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031557600080fd5b610113600160a060020a036004351660243561079a565b341561033757600080fd5b61015c6107a7565b341561034a57600080fd5b610113600160a060020a03600435166024356107ad565b341561036c57600080fd5b61015c600160a060020a0360043581169060243516610851565b341561039157600080fd5b6103a5600160a060020a036004351661087c565b005b60035460a060020a900460ff1681565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b600080610437858585610917565b905061044284610a99565b600061044d86610641565b116104d157600160a060020a038516600090815260076020526040808220805460ff191690556006805460001901908190557fb83e1d14e8ccecc5461685cc4343c697baa6c3c30cd71b169b61a4ee9d7b1d2292889251600160a060020a039093168352602083019190915215156040808301919091526060909101905180910390a15b949350505050565b60055481565b600354600090819033600160a060020a039081169116146104ff57600080fd5b60035460a060020a900460ff161561051657600080fd5b6105208484610b44565b905061052b84610a99565b9392505050565b60076020526000908152604090205460ff1681565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054808311156105a457600160a060020a0333811660009081526002602090815260408083209388168352929052908120556105db565b6105b4818463ffffffff610c5116565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b60035460009033600160a060020a0390811691161461067a57600080fd5b60035460a060020a900460ff161561069157600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a150600190565b600354600160a060020a031681565b60065481565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107925780601f1061076757610100808354040283529160200191610792565b820191906000526020600020905b81548152906001019060200180831161077557829003601f168201915b505050505081565b6000806105208484610c63565b60065490565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120546107e5908363ffffffff610d5e16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a0390811691161461089757600080fd5b600160a060020a03811615156108ac57600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600160a060020a038316151561092e57600080fd5b600160a060020a03841660009081526001602052604090205482111561095357600080fd5b600160a060020a038085166000908152600260209081526040808320339094168352929052205482111561098657600080fd5b600160a060020a0384166000908152600160205260409020546109af908363ffffffff610c5116565b600160a060020a0380861660009081526001602052604080822093909355908516815220546109e4908363ffffffff610d5e16565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610a2c908363ffffffff610c5116565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b600160a060020a03811660009081526007602052604090205460ff161515610aeb57600160a060020a0381166000908152600760205260409020805460ff191660019081179091556006805490910190555b7fb83e1d14e8ccecc5461685cc4343c697baa6c3c30cd71b169b61a4ee9d7b1d22816006546001604051600160a060020a039093168352602083019190915215156040808301919091526060909101905180910390a150565b60035460009033600160a060020a03908116911614610b6257600080fd5b60035460a060020a900460ff1615610b7957600080fd5b600054610b8c908363ffffffff610d5e16565b6000908155600160a060020a038416815260016020526040902054610bb7908363ffffffff610d5e16565b600160a060020a0384166000818152600160205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a2600160a060020a03831660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b600082821115610c5d57fe5b50900390565b6000600160a060020a0383161515610c7a57600080fd5b600160a060020a033316600090815260016020526040902054821115610c9f57600080fd5b600160a060020a033316600090815260016020526040902054610cc8908363ffffffff610c5116565b600160a060020a033381166000908152600160205260408082209390935590851681522054610cfd908363ffffffff610d5e16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b60008282018381101561052b57fe00a165627a7a7230582055b7063c5cf39b6677250e7de08a08371de57822708eeec9ded6897513d7b65d0029
Deployed Bytecode
0x6060604052600436106100fb5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b8114610100578063095ea7b31461012757806318160ddd1461014957806323b872dd1461016e578063313ce5671461019657806340c10f19146101a957806364dad32f146101cb57806366188463146101ea57806370a082311461020c5780637d64bcb41461022b5780638da5cb5b1461023e578063908c3a6a1461026d57806395d89b4114610280578063a9059cbb1461030a578063be8dd49a1461032c578063d73dd6231461033f578063dd62ed3e14610361578063f2fde38b14610386575b600080fd5b341561010b57600080fd5b6101136103a7565b604051901515815260200160405180910390f35b341561013257600080fd5b610113600160a060020a03600435166024356103b7565b341561015457600080fd5b61015c610423565b60405190815260200160405180910390f35b341561017957600080fd5b610113600160a060020a0360043581169060243516604435610429565b34156101a157600080fd5b61015c6104d9565b34156101b457600080fd5b610113600160a060020a03600435166024356104df565b34156101d657600080fd5b610113600160a060020a0360043516610532565b34156101f557600080fd5b610113600160a060020a0360043516602435610547565b341561021757600080fd5b61015c600160a060020a0360043516610641565b341561023657600080fd5b61011361065c565b341561024957600080fd5b6102516106e7565b604051600160a060020a03909116815260200160405180910390f35b341561027857600080fd5b61015c6106f6565b341561028b57600080fd5b6102936106fc565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102cf5780820151838201526020016102b7565b50505050905090810190601f1680156102fc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031557600080fd5b610113600160a060020a036004351660243561079a565b341561033757600080fd5b61015c6107a7565b341561034a57600080fd5b610113600160a060020a03600435166024356107ad565b341561036c57600080fd5b61015c600160a060020a0360043581169060243516610851565b341561039157600080fd5b6103a5600160a060020a036004351661087c565b005b60035460a060020a900460ff1681565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b600080610437858585610917565b905061044284610a99565b600061044d86610641565b116104d157600160a060020a038516600090815260076020526040808220805460ff191690556006805460001901908190557fb83e1d14e8ccecc5461685cc4343c697baa6c3c30cd71b169b61a4ee9d7b1d2292889251600160a060020a039093168352602083019190915215156040808301919091526060909101905180910390a15b949350505050565b60055481565b600354600090819033600160a060020a039081169116146104ff57600080fd5b60035460a060020a900460ff161561051657600080fd5b6105208484610b44565b905061052b84610a99565b9392505050565b60076020526000908152604090205460ff1681565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054808311156105a457600160a060020a0333811660009081526002602090815260408083209388168352929052908120556105db565b6105b4818463ffffffff610c5116565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b60035460009033600160a060020a0390811691161461067a57600080fd5b60035460a060020a900460ff161561069157600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a150600190565b600354600160a060020a031681565b60065481565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107925780601f1061076757610100808354040283529160200191610792565b820191906000526020600020905b81548152906001019060200180831161077557829003601f168201915b505050505081565b6000806105208484610c63565b60065490565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120546107e5908363ffffffff610d5e16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a0390811691161461089757600080fd5b600160a060020a03811615156108ac57600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600160a060020a038316151561092e57600080fd5b600160a060020a03841660009081526001602052604090205482111561095357600080fd5b600160a060020a038085166000908152600260209081526040808320339094168352929052205482111561098657600080fd5b600160a060020a0384166000908152600160205260409020546109af908363ffffffff610c5116565b600160a060020a0380861660009081526001602052604080822093909355908516815220546109e4908363ffffffff610d5e16565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610a2c908363ffffffff610c5116565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b600160a060020a03811660009081526007602052604090205460ff161515610aeb57600160a060020a0381166000908152600760205260409020805460ff191660019081179091556006805490910190555b7fb83e1d14e8ccecc5461685cc4343c697baa6c3c30cd71b169b61a4ee9d7b1d22816006546001604051600160a060020a039093168352602083019190915215156040808301919091526060909101905180910390a150565b60035460009033600160a060020a03908116911614610b6257600080fd5b60035460a060020a900460ff1615610b7957600080fd5b600054610b8c908363ffffffff610d5e16565b6000908155600160a060020a038416815260016020526040902054610bb7908363ffffffff610d5e16565b600160a060020a0384166000818152600160205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a2600160a060020a03831660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b600082821115610c5d57fe5b50900390565b6000600160a060020a0383161515610c7a57600080fd5b600160a060020a033316600090815260016020526040902054821115610c9f57600080fd5b600160a060020a033316600090815260016020526040902054610cc8908363ffffffff610c5116565b600160a060020a033381166000908152600160205260408082209390935590851681522054610cfd908363ffffffff610d5e16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b60008282018381101561052b57fe00a165627a7a7230582055b7063c5cf39b6677250e7de08a08371de57822708eeec9ded6897513d7b65d0029
Swarm Source
bzzr://55b7063c5cf39b6677250e7de08a08371de57822708eeec9ded6897513d7b65d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.