PRL contract has known vulnerability. Proceed with care while interacting with the contract. More information can be found here.
ERC-20
Overview
Max Total Supply
104,223,796.797303340986343938 PRL
Holders
13,582
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
2,685.190850469549220646 PRLValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
OysterPearl
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-10-20 */ pragma solidity ^0.4.18; interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) public; } contract OysterPearl { // Public variables of PRL string public name; string public symbol; uint8 public decimals; uint256 public totalSupply; uint256 public funds; address public director; bool public saleClosed; bool public directorLock; uint256 public claimAmount; uint256 public payAmount; uint256 public feeAmount; uint256 public epoch; uint256 public retentionMax; // Array definitions mapping (address => uint256) public balances; mapping (address => mapping (address => uint256)) public allowance; mapping (address => bool) public buried; mapping (address => uint256) public claimed; // ERC20 event event Transfer(address indexed _from, address indexed _to, uint256 _value); // ERC20 event event Approval(address indexed _owner, address indexed _spender, uint256 _value); // This notifies clients about the amount burnt event Burn(address indexed _from, uint256 _value); // This notifies clients about an address getting buried event Bury(address indexed _target, uint256 _value); // This notifies clients about a claim being made on a buried address event Claim(address indexed _target, address indexed _payout, address indexed _fee); /** * Constructor function * * Initializes contract */ function OysterPearl() public { director = msg.sender; name = "Oyster Pearl"; symbol = "PRL"; decimals = 18; saleClosed = true; directorLock = false; funds = 0; totalSupply = 0; // Marketing share (5%) totalSupply += 25000000 * 10 ** uint256(decimals); // Devfund share (15%) totalSupply += 75000000 * 10 ** uint256(decimals); // Allocation to match PREPRL supply and reservation for discretionary use totalSupply += 8000000 * 10 ** uint256(decimals); // Assign reserved PRL supply to the director balances[director] = totalSupply; // Define default values for Oyster functions claimAmount = 5 * 10 ** (uint256(decimals) - 1); payAmount = 4 * 10 ** (uint256(decimals) - 1); feeAmount = 1 * 10 ** (uint256(decimals) - 1); // Seconds in a year epoch = 31536000; // Maximum time for a sector to remain stored retentionMax = 40 * 10 ** uint256(decimals); } /** * ERC20 balance function */ function balanceOf(address _owner) public constant returns (uint256 balance) { return balances[_owner]; } modifier onlyDirector { // Director can lock themselves out to complete decentralization of Oyster network // An alternative is that another smart contract could become the decentralized director require(!directorLock); // Only the director is permitted require(msg.sender == director); _; } modifier onlyDirectorForce { // Only the director is permitted require(msg.sender == director); _; } /** * Transfers the director to a new address */ function transferDirector(address newDirector) public onlyDirectorForce { director = newDirector; } /** * Withdraw funds from the contract */ function withdrawFunds() public onlyDirectorForce { director.transfer(this.balance); } /** * Permanently lock out the director to decentralize Oyster * Invocation is discretionary because Oyster might be better suited to * transition to an artificially intelligent smart contract director */ function selfLock() public payable onlyDirector { // The sale must be closed before the director gets locked out require(saleClosed); // Prevents accidental lockout require(msg.value == 10 ether); // Permanently lock out the director directorLock = true; } /** * Director can alter the storage-peg and broker fees */ function amendClaim(uint8 claimAmountSet, uint8 payAmountSet, uint8 feeAmountSet, uint8 accuracy) public onlyDirector returns (bool success) { require(claimAmountSet == (payAmountSet + feeAmountSet)); claimAmount = claimAmountSet * 10 ** (uint256(decimals) - accuracy); payAmount = payAmountSet * 10 ** (uint256(decimals) - accuracy); feeAmount = feeAmountSet * 10 ** (uint256(decimals) - accuracy); return true; } /** * Director can alter the epoch time */ function amendEpoch(uint256 epochSet) public onlyDirector returns (bool success) { // Set the epoch epoch = epochSet; return true; } /** * Director can alter the maximum time of storage retention */ function amendRetention(uint8 retentionSet, uint8 accuracy) public onlyDirector returns (bool success) { // Set retentionMax retentionMax = retentionSet * 10 ** (uint256(decimals) - accuracy); return true; } /** * Director can close the crowdsale */ function closeSale() public onlyDirector returns (bool success) { // The sale must be currently open require(!saleClosed); // Lock the crowdsale saleClosed = true; return true; } /** * Director can open the crowdsale */ function openSale() public onlyDirector returns (bool success) { // The sale must be currently closed require(saleClosed); // Unlock the crowdsale saleClosed = false; return true; } /** * Oyster Protocol Function * More information at https://oyster.ws/OysterWhitepaper.pdf * * Bury an address * * When an address is buried; only claimAmount can be withdrawn once per epoch */ function bury() public returns (bool success) { // The address must be previously unburied require(!buried[msg.sender]); // An address must have at least claimAmount to be buried require(balances[msg.sender] >= claimAmount); // Prevent addresses with large balances from getting buried require(balances[msg.sender] <= retentionMax); // Set buried state to true buried[msg.sender] = true; // Set the initial claim clock to 1 claimed[msg.sender] = 1; // Execute an event reflecting the change Bury(msg.sender, balances[msg.sender]); return true; } /** * Oyster Protocol Function * More information at https://oyster.ws/OysterWhitepaper.pdf * * Claim PRL from a buried address * * If a prior claim wasn't made during the current epoch, then claimAmount can be withdrawn * * @param _payout the address of the website owner * @param _fee the address of the broker node */ function claim(address _payout, address _fee) public returns (bool success) { // The claimed address must have already been buried require(buried[msg.sender]); // The payout and fee addresses must be different require(_payout != _fee); // The claimed address cannot pay itself require(msg.sender != _payout); // The claimed address cannot pay itself require(msg.sender != _fee); // It must be either the first time this address is being claimed or atleast epoch in time has passed require(claimed[msg.sender] == 1 || (block.timestamp - claimed[msg.sender]) >= epoch); // Check if the buried address has enough require(balances[msg.sender] >= claimAmount); // Reset the claim clock to the current block time claimed[msg.sender] = block.timestamp; // Save this for an assertion in the future uint256 previousBalances = balances[msg.sender] + balances[_payout] + balances[_fee]; // Remove claimAmount from the buried address balances[msg.sender] -= claimAmount; // Pay the website owner that invoked the web node that found the PRL seed key balances[_payout] += payAmount; // Pay the broker node that unlocked the PRL balances[_fee] += feeAmount; // Execute events to reflect the changes Claim(msg.sender, _payout, _fee); Transfer(msg.sender, _payout, payAmount); Transfer(msg.sender, _fee, feeAmount); // Failsafe logic that should never be false assert(balances[msg.sender] + balances[_payout] + balances[_fee] == previousBalances); return true; } /** * Crowdsale function */ function () public payable { // Check if crowdsale is still active require(!saleClosed); // Minimum amount is 1 finney require(msg.value >= 1 finney); // Price is 1 ETH = 5000 PRL uint256 amount = msg.value * 5000; // totalSupply limit is 500 million PRL require(totalSupply + amount <= (500000000 * 10 ** uint256(decimals))); // Increases the total supply totalSupply += amount; // Adds the amount to the balance balances[msg.sender] += amount; // Track ETH amount raised funds += msg.value; // Execute an event reflecting the change Transfer(this, msg.sender, amount); } /** * Internal transfer, can be called by this contract only */ function _transfer(address _from, address _to, uint _value) internal { // Sending addresses cannot be buried require(!buried[_from]); // If the receiving address is buried, it cannot exceed retentionMax if (buried[_to]) { require(balances[_to] + _value <= retentionMax); } // Prevent transfer to 0x0 address, use burn() instead require(_to != 0x0); // Check if the sender has enough require(balances[_from] >= _value); // Check for overflows require(balances[_to] + _value > balances[_to]); // Save this for an assertion in the future uint256 previousBalances = balances[_from] + balances[_to]; // Subtract from the sender balances[_from] -= _value; // Add the same to the recipient balances[_to] += _value; Transfer(_from, _to, _value); // Failsafe logic that should never be false assert(balances[_from] + balances[_to] == previousBalances); } /** * Transfer tokens * * Send `_value` tokens to `_to` from your account * * @param _to the address of the recipient * @param _value the amount to send */ function transfer(address _to, uint256 _value) public { _transfer(msg.sender, _to, _value); } /** * Transfer tokens from other address * * Send `_value` tokens to `_to` in behalf of `_from` * * @param _from the address of the sender * @param _to the address of the recipient * @param _value the amount to send */ function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) { // Check allowance require(_value <= allowance[_from][msg.sender]); allowance[_from][msg.sender] -= _value; _transfer(_from, _to, _value); return true; } /** * Set allowance for other address * * Allows `_spender` to spend no more than `_value` tokens on your behalf * * @param _spender the address authorized to spend * @param _value the max amount they can spend */ function approve(address _spender, uint256 _value) public returns (bool success) { // Buried addresses cannot be approved require(!buried[msg.sender]); allowance[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /** * Set allowance for other address and notify * * Allows `_spender` to spend no more than `_value` tokens on your behalf, and then ping the contract about it * * @param _spender the address authorized to spend * @param _value the max amount they can spend * @param _extraData some extra information to send to the approved contract */ function approveAndCall(address _spender, uint256 _value, bytes _extraData) public returns (bool success) { tokenRecipient spender = tokenRecipient(_spender); if (approve(_spender, _value)) { spender.receiveApproval(msg.sender, _value, this, _extraData); return true; } } /** * Destroy tokens * * Remove `_value` tokens from the system irreversibly * * @param _value the amount of money to burn */ function burn(uint256 _value) public returns (bool success) { // Buried addresses cannot be burnt require(!buried[msg.sender]); // Check if the sender has enough require(balances[msg.sender] >= _value); // Subtract from the sender balances[msg.sender] -= _value; // Updates totalSupply totalSupply -= _value; Burn(msg.sender, _value); return true; } /** * Destroy tokens from other account * * Remove `_value` tokens from the system irreversibly on behalf of `_from`. * * @param _from the address of the sender * @param _value the amount of money to burn */ function burnFrom(address _from, uint256 _value) public returns (bool success) { // Buried addresses cannot be burnt require(!buried[_from]); // Check if the targeted balance is enough require(balances[_from] >= _value); // Check allowance require(_value <= allowance[_from][msg.sender]); // Subtract from the targeted balance balances[_from] -= _value; // Subtract from the sender's allowance allowance[_from][msg.sender] -= _value; // Update totalSupply totalSupply -= _value; Burn(_from, _value); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"openSale","outputs":[{"name":"success","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":"_payout","type":"address"},{"name":"_fee","type":"address"}],"name":"claim","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"retentionMax","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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"buried","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"epochSet","type":"uint256"}],"name":"amendEpoch","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"director","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"retentionSet","type":"uint8"},{"name":"accuracy","type":"uint8"}],"name":"amendRetention","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"bury","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"feeAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"claimAmountSet","type":"uint8"},{"name":"payAmountSet","type":"uint8"},{"name":"feeAmountSet","type":"uint8"},{"name":"accuracy","type":"uint8"}],"name":"amendClaim","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"claimAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"epoch","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":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"saleClosed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"payAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"claimed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"funds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"selfLock","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newDirector","type":"address"}],"name":"transferDirector","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"closeSale","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"directorLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"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"},{"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":false,"name":"_value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_target","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Bury","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_target","type":"address"},{"indexed":true,"name":"_payout","type":"address"},{"indexed":true,"name":"_fee","type":"address"}],"name":"Claim","type":"event"}]
Contract Creation Code
606060405234156200001057600080fd5b60058054600160a060020a03191633600160a060020a031617905560408051908101604052600c81527f4f797374657220506561726c0000000000000000000000000000000000000000602082015260009080516200007492916020019062000180565b5060408051908101604052600381527f50524c000000000000000000000000000000000000000000000000000000000060208201526001908051620000be92916020019062000180565b5060028054601260ff1990911617808255600580547401000000000000000000000000000000000000000060a060020a60ff02199091161760a860020a60ff0219811682556000600481815563017d784060ff958616600a90810a91820263047868c0830201627a120092909202919091016003819055600160a060020a039094168352600b60205260409092209290925593549092166000198101840a9182026006559181026007556008556301e13380600955810a602802905562000225565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001c357805160ff1916838001178555620001f3565b82800160010185558215620001f3579182015b82811115620001f3578251825591602001919060010190620001d6565b506200020192915062000205565b5090565b6200022291905b808211156200020157600081556001016200020c565b90565b61147a80620002356000396000f3006060604052600436106101ab5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461025a578063095ea7b3146102e4578063167ff46f1461031a57806318160ddd1461032d57806321c0b3421461035257806322bb4f531461037757806323b872dd1461038a57806324600fc3146103b257806327e235e3146103c7578063313ce567146103e65780633f1199e61461040f57806342966c681461042e578063549215a3146104445780635af82abf1461045a5780635f5f2aef1461048957806361161aae146104a857806369e15404146104bb57806370a08231146104ce57806379cc6790146104ed5780637dbc9fba1461050f578063830953ab1461053a578063900cf0cf1461054d57806395d89b4114610560578063a9059cbb14610573578063b8c766b814610595578063c8705544146105a8578063c884ef83146105bb578063c89f2ce4146105da578063cae9ca51146105ed578063d1e7e81f14610652578063dd62ed3e1461065a578063ddd41ef61461067f578063ee55efee1461069e578063ffe2d77e146106b1575b60055460009060a060020a900460ff16156101c557600080fd5b66038d7ea4c680003410156101d957600080fd5b5060025460035434611388029160ff16600a0a631dcd650002908201111561020057600080fd5b6003805482019055600160a060020a033381166000818152600b6020526040908190208054850190556004805434019055909130169060008051602061142f8339815191529084905190815260200160405180910390a350005b341561026557600080fd5b61026d6106c4565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102a9578082015183820152602001610291565b50505050905090810190601f1680156102d65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102ef57600080fd5b610306600160a060020a0360043516602435610762565b604051901515815260200160405180910390f35b341561032557600080fd5b6103066107f1565b341561033857600080fd5b610340610862565b60405190815260200160405180910390f35b341561035d57600080fd5b610306600160a060020a0360043581169060243516610868565b341561038257600080fd5b610340610aa9565b341561039557600080fd5b610306600160a060020a0360043581169060243516604435610aaf565b34156103bd57600080fd5b6103c5610b1c565b005b34156103d257600080fd5b610340600160a060020a0360043516610b72565b34156103f157600080fd5b6103f9610b84565b60405160ff909116815260200160405180910390f35b341561041a57600080fd5b610306600160a060020a0360043516610b8d565b341561043957600080fd5b610306600435610ba2565b341561044f57600080fd5b610306600435610c53565b341561046557600080fd5b61046d610c91565b604051600160a060020a03909116815260200160405180910390f35b341561049457600080fd5b61030660ff60043581169060243516610ca0565b34156104b357600080fd5b610306610cf6565b34156104c657600080fd5b610340610ddc565b34156104d957600080fd5b610340600160a060020a0360043516610de2565b34156104f857600080fd5b610306600160a060020a0360043516602435610dfd565b341561051a57600080fd5b61030660ff60043581169060243581169060443581169060643516610eff565b341561054557600080fd5b610340610f74565b341561055857600080fd5b610340610f7a565b341561056b57600080fd5b61026d610f80565b341561057e57600080fd5b6103c5600160a060020a0360043516602435610feb565b34156105a057600080fd5b610306610ffa565b34156105b357600080fd5b61034061100a565b34156105c657600080fd5b610340600160a060020a0360043516611010565b34156105e557600080fd5b610340611022565b34156105f857600080fd5b61030660048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061102895505050505050565b6103c561115a565b341561066557600080fd5b610340600160a060020a03600435811690602435166111df565b341561068a57600080fd5b6103c5600160a060020a03600435166111fc565b34156106a957600080fd5b610306611246565b34156106bc57600080fd5b6103066112bc565b60008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561075a5780601f1061072f5761010080835404028352916020019161075a565b820191906000526020600020905b81548152906001019060200180831161073d57829003601f168201915b505050505081565b600160a060020a0333166000908152600d602052604081205460ff161561078857600080fd5b600160a060020a033381166000818152600c6020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60055460009060a860020a900460ff161561080b57600080fd5b60055433600160a060020a0390811691161461082657600080fd5b60055460a060020a900460ff16151561083e57600080fd5b506005805474ff000000000000000000000000000000000000000019169055600190565b60035481565b600160a060020a0333166000908152600d6020526040812054819060ff16151561089157600080fd5b600160a060020a0384811690841614156108aa57600080fd5b83600160a060020a031633600160a060020a0316141515156108cb57600080fd5b82600160a060020a031633600160a060020a0316141515156108ec57600080fd5b600160a060020a0333166000908152600e60205260409020546001148061092f5750600954600160a060020a0333166000908152600e6020526040902054420310155b151561093a57600080fd5b600654600160a060020a0333166000908152600b6020526040902054101561096157600080fd5b50600160a060020a033381166000818152600e60209081526040808320429055868516808452600b90925280832080549589168085528285208054878752848720805460065481039091556007548354019092556008549686905283549096019092559301909401939092907fcac3ed26c9dd72a2c44999857298af9c72ba2d1ca9784f5dad48c933e2224c11905160405180910390a483600160a060020a031633600160a060020a031660008051602061142f83398151915260075460405190815260200160405180910390a382600160a060020a031633600160a060020a031660008051602061142f83398151915260085460405190815260200160405180910390a3600160a060020a038084166000908152600b602052604080822054878416835281832054339094168352912054909101018114610a9f57fe5b5060019392505050565b600a5481565b600160a060020a038084166000908152600c6020908152604080832033909416835292905290812054821115610ae457600080fd5b600160a060020a038085166000908152600c602090815260408083203390941683529290522080548390039055610a9f8484846112cc565b60055433600160a060020a03908116911614610b3757600080fd5b600554600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610b7057600080fd5b565b600b6020526000908152604090205481565b60025460ff1681565b600d6020526000908152604090205460ff1681565b600160a060020a0333166000908152600d602052604081205460ff1615610bc857600080fd5b600160a060020a0333166000908152600b602052604090205482901015610bee57600080fd5b600160a060020a0333166000818152600b602052604090819020805485900390556003805485900390557fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59084905190815260200160405180910390a2506001919050565b60055460009060a860020a900460ff1615610c6d57600080fd5b60055433600160a060020a03908116911614610c8857600080fd5b50600955600190565b600554600160a060020a031681565b60055460009060a860020a900460ff1615610cba57600080fd5b60055433600160a060020a03908116911614610cd557600080fd5b5060025460ff91821690821603600a90810a92909116919091029055600190565b600160a060020a0333166000908152600d602052604081205460ff1615610d1c57600080fd5b600654600160a060020a0333166000908152600b60205260409020541015610d4357600080fd5b600a54600160a060020a0333166000908152600b60205260409020541115610d6a57600080fd5b600160a060020a0333166000818152600d60209081526040808320805460ff19166001908117909155600e835281842055600b90915290819020547fc96e8fee6eb65975d592ca9a340f33200433df4c42b2f623dd9fc6d22984d495915190815260200160405180910390a250600190565b60085481565b600160a060020a03166000908152600b602052604090205490565b600160a060020a0382166000908152600d602052604081205460ff1615610e2357600080fd5b600160a060020a0383166000908152600b602052604090205482901015610e4957600080fd5b600160a060020a038084166000908152600c602090815260408083203390941683529290522054821115610e7c57600080fd5b600160a060020a038084166000818152600b6020908152604080832080548890039055600c825280832033909516835293905282902080548590039055600380548590039055907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59084905190815260200160405180910390a250600192915050565b60055460009060a860020a900460ff1615610f1957600080fd5b60055433600160a060020a03908116911614610f3457600080fd5b82840160ff168560ff16141515610f4a57600080fd5b5060025460ff91821690821603600a0a938116840260065591821683026007551602600855600190565b60065481565b60095481565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561075a5780601f1061072f5761010080835404028352916020019161075a565b610ff63383836112cc565b5050565b60055460a060020a900460ff1681565b60075481565b600e6020526000908152604090205481565b60045481565b6000836110358185610762565b156111525780600160a060020a0316638f4ffcb1338630876040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156110eb5780820151838201526020016110d3565b50505050905090810190601f1680156111185780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b151561113957600080fd5b6102c65a03f1151561114a57600080fd5b505050600191505b509392505050565b60055460a860020a900460ff161561117157600080fd5b60055433600160a060020a0390811691161461118c57600080fd5b60055460a060020a900460ff1615156111a457600080fd5b678ac7230489e8000034146111b857600080fd5b6005805475ff000000000000000000000000000000000000000000191660a860020a179055565b600c60209081526000928352604080842090915290825290205481565b60055433600160a060020a0390811691161461121757600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60055460009060a860020a900460ff161561126057600080fd5b60055433600160a060020a0390811691161461127b57600080fd5b60055460a060020a900460ff161561129257600080fd5b506005805474ff0000000000000000000000000000000000000000191660a060020a179055600190565b60055460a860020a900460ff1681565b600160a060020a0383166000908152600d602052604081205460ff16156112f257600080fd5b600160a060020a0383166000908152600d602052604090205460ff161561133c57600a54600160a060020a0384166000908152600b60205260409020548301111561133c57600080fd5b600160a060020a038316151561135157600080fd5b600160a060020a0384166000908152600b60205260409020548290101561137757600080fd5b600160a060020a0383166000908152600b60205260409020548281011161139d57600080fd5b50600160a060020a038083166000818152600b6020526040808220805494881680845282842080548881039091559385905281548701909155919093019260008051602061142f8339815191529085905190815260200160405180910390a3600160a060020a038084166000908152600b602052604080822054928716825290205401811461142857fe5b505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820b75989bfaa699eb7c7bce4f08a57b908d266e9f535c2d4c7d4c7b86a1ff28a040029
Deployed Bytecode
0x6060604052600436106101ab5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461025a578063095ea7b3146102e4578063167ff46f1461031a57806318160ddd1461032d57806321c0b3421461035257806322bb4f531461037757806323b872dd1461038a57806324600fc3146103b257806327e235e3146103c7578063313ce567146103e65780633f1199e61461040f57806342966c681461042e578063549215a3146104445780635af82abf1461045a5780635f5f2aef1461048957806361161aae146104a857806369e15404146104bb57806370a08231146104ce57806379cc6790146104ed5780637dbc9fba1461050f578063830953ab1461053a578063900cf0cf1461054d57806395d89b4114610560578063a9059cbb14610573578063b8c766b814610595578063c8705544146105a8578063c884ef83146105bb578063c89f2ce4146105da578063cae9ca51146105ed578063d1e7e81f14610652578063dd62ed3e1461065a578063ddd41ef61461067f578063ee55efee1461069e578063ffe2d77e146106b1575b60055460009060a060020a900460ff16156101c557600080fd5b66038d7ea4c680003410156101d957600080fd5b5060025460035434611388029160ff16600a0a631dcd650002908201111561020057600080fd5b6003805482019055600160a060020a033381166000818152600b6020526040908190208054850190556004805434019055909130169060008051602061142f8339815191529084905190815260200160405180910390a350005b341561026557600080fd5b61026d6106c4565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102a9578082015183820152602001610291565b50505050905090810190601f1680156102d65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102ef57600080fd5b610306600160a060020a0360043516602435610762565b604051901515815260200160405180910390f35b341561032557600080fd5b6103066107f1565b341561033857600080fd5b610340610862565b60405190815260200160405180910390f35b341561035d57600080fd5b610306600160a060020a0360043581169060243516610868565b341561038257600080fd5b610340610aa9565b341561039557600080fd5b610306600160a060020a0360043581169060243516604435610aaf565b34156103bd57600080fd5b6103c5610b1c565b005b34156103d257600080fd5b610340600160a060020a0360043516610b72565b34156103f157600080fd5b6103f9610b84565b60405160ff909116815260200160405180910390f35b341561041a57600080fd5b610306600160a060020a0360043516610b8d565b341561043957600080fd5b610306600435610ba2565b341561044f57600080fd5b610306600435610c53565b341561046557600080fd5b61046d610c91565b604051600160a060020a03909116815260200160405180910390f35b341561049457600080fd5b61030660ff60043581169060243516610ca0565b34156104b357600080fd5b610306610cf6565b34156104c657600080fd5b610340610ddc565b34156104d957600080fd5b610340600160a060020a0360043516610de2565b34156104f857600080fd5b610306600160a060020a0360043516602435610dfd565b341561051a57600080fd5b61030660ff60043581169060243581169060443581169060643516610eff565b341561054557600080fd5b610340610f74565b341561055857600080fd5b610340610f7a565b341561056b57600080fd5b61026d610f80565b341561057e57600080fd5b6103c5600160a060020a0360043516602435610feb565b34156105a057600080fd5b610306610ffa565b34156105b357600080fd5b61034061100a565b34156105c657600080fd5b610340600160a060020a0360043516611010565b34156105e557600080fd5b610340611022565b34156105f857600080fd5b61030660048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061102895505050505050565b6103c561115a565b341561066557600080fd5b610340600160a060020a03600435811690602435166111df565b341561068a57600080fd5b6103c5600160a060020a03600435166111fc565b34156106a957600080fd5b610306611246565b34156106bc57600080fd5b6103066112bc565b60008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561075a5780601f1061072f5761010080835404028352916020019161075a565b820191906000526020600020905b81548152906001019060200180831161073d57829003601f168201915b505050505081565b600160a060020a0333166000908152600d602052604081205460ff161561078857600080fd5b600160a060020a033381166000818152600c6020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60055460009060a860020a900460ff161561080b57600080fd5b60055433600160a060020a0390811691161461082657600080fd5b60055460a060020a900460ff16151561083e57600080fd5b506005805474ff000000000000000000000000000000000000000019169055600190565b60035481565b600160a060020a0333166000908152600d6020526040812054819060ff16151561089157600080fd5b600160a060020a0384811690841614156108aa57600080fd5b83600160a060020a031633600160a060020a0316141515156108cb57600080fd5b82600160a060020a031633600160a060020a0316141515156108ec57600080fd5b600160a060020a0333166000908152600e60205260409020546001148061092f5750600954600160a060020a0333166000908152600e6020526040902054420310155b151561093a57600080fd5b600654600160a060020a0333166000908152600b6020526040902054101561096157600080fd5b50600160a060020a033381166000818152600e60209081526040808320429055868516808452600b90925280832080549589168085528285208054878752848720805460065481039091556007548354019092556008549686905283549096019092559301909401939092907fcac3ed26c9dd72a2c44999857298af9c72ba2d1ca9784f5dad48c933e2224c11905160405180910390a483600160a060020a031633600160a060020a031660008051602061142f83398151915260075460405190815260200160405180910390a382600160a060020a031633600160a060020a031660008051602061142f83398151915260085460405190815260200160405180910390a3600160a060020a038084166000908152600b602052604080822054878416835281832054339094168352912054909101018114610a9f57fe5b5060019392505050565b600a5481565b600160a060020a038084166000908152600c6020908152604080832033909416835292905290812054821115610ae457600080fd5b600160a060020a038085166000908152600c602090815260408083203390941683529290522080548390039055610a9f8484846112cc565b60055433600160a060020a03908116911614610b3757600080fd5b600554600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610b7057600080fd5b565b600b6020526000908152604090205481565b60025460ff1681565b600d6020526000908152604090205460ff1681565b600160a060020a0333166000908152600d602052604081205460ff1615610bc857600080fd5b600160a060020a0333166000908152600b602052604090205482901015610bee57600080fd5b600160a060020a0333166000818152600b602052604090819020805485900390556003805485900390557fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59084905190815260200160405180910390a2506001919050565b60055460009060a860020a900460ff1615610c6d57600080fd5b60055433600160a060020a03908116911614610c8857600080fd5b50600955600190565b600554600160a060020a031681565b60055460009060a860020a900460ff1615610cba57600080fd5b60055433600160a060020a03908116911614610cd557600080fd5b5060025460ff91821690821603600a90810a92909116919091029055600190565b600160a060020a0333166000908152600d602052604081205460ff1615610d1c57600080fd5b600654600160a060020a0333166000908152600b60205260409020541015610d4357600080fd5b600a54600160a060020a0333166000908152600b60205260409020541115610d6a57600080fd5b600160a060020a0333166000818152600d60209081526040808320805460ff19166001908117909155600e835281842055600b90915290819020547fc96e8fee6eb65975d592ca9a340f33200433df4c42b2f623dd9fc6d22984d495915190815260200160405180910390a250600190565b60085481565b600160a060020a03166000908152600b602052604090205490565b600160a060020a0382166000908152600d602052604081205460ff1615610e2357600080fd5b600160a060020a0383166000908152600b602052604090205482901015610e4957600080fd5b600160a060020a038084166000908152600c602090815260408083203390941683529290522054821115610e7c57600080fd5b600160a060020a038084166000818152600b6020908152604080832080548890039055600c825280832033909516835293905282902080548590039055600380548590039055907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59084905190815260200160405180910390a250600192915050565b60055460009060a860020a900460ff1615610f1957600080fd5b60055433600160a060020a03908116911614610f3457600080fd5b82840160ff168560ff16141515610f4a57600080fd5b5060025460ff91821690821603600a0a938116840260065591821683026007551602600855600190565b60065481565b60095481565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561075a5780601f1061072f5761010080835404028352916020019161075a565b610ff63383836112cc565b5050565b60055460a060020a900460ff1681565b60075481565b600e6020526000908152604090205481565b60045481565b6000836110358185610762565b156111525780600160a060020a0316638f4ffcb1338630876040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156110eb5780820151838201526020016110d3565b50505050905090810190601f1680156111185780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b151561113957600080fd5b6102c65a03f1151561114a57600080fd5b505050600191505b509392505050565b60055460a860020a900460ff161561117157600080fd5b60055433600160a060020a0390811691161461118c57600080fd5b60055460a060020a900460ff1615156111a457600080fd5b678ac7230489e8000034146111b857600080fd5b6005805475ff000000000000000000000000000000000000000000191660a860020a179055565b600c60209081526000928352604080842090915290825290205481565b60055433600160a060020a0390811691161461121757600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60055460009060a860020a900460ff161561126057600080fd5b60055433600160a060020a0390811691161461127b57600080fd5b60055460a060020a900460ff161561129257600080fd5b506005805474ff0000000000000000000000000000000000000000191660a060020a179055600190565b60055460a860020a900460ff1681565b600160a060020a0383166000908152600d602052604081205460ff16156112f257600080fd5b600160a060020a0383166000908152600d602052604090205460ff161561133c57600a54600160a060020a0384166000908152600b60205260409020548301111561133c57600080fd5b600160a060020a038316151561135157600080fd5b600160a060020a0384166000908152600b60205260409020548290101561137757600080fd5b600160a060020a0383166000908152600b60205260409020548281011161139d57600080fd5b50600160a060020a038083166000818152600b6020526040808220805494881680845282842080548881039091559385905281548701909155919093019260008051602061142f8339815191529085905190815260200160405180910390a3600160a060020a038084166000908152600b602052604080822054928716825290205401811461142857fe5b505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820b75989bfaa699eb7c7bce4f08a57b908d266e9f535c2d4c7d4c7b86a1ff28a040029
Swarm Source
bzzr://b75989bfaa699eb7c7bce4f08a57b908d266e9f535c2d4c7d4c7b86a1ff28a04
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.