ERC-20
Overview
Max Total Supply
11,622,218,989.686988795708499994 🍺
Holders
3,890
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
3,000 🍺Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Beercoin
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-01-12 */ pragma solidity ^0.4.19; /** * A contract containing the fundamental state variables of the Beercoin */ contract InternalBeercoin { // As 18 decimal places will be used, the constants are multiplied by 10^18 uint256 internal constant INITIAL_SUPPLY = 15496000000 * 10**18; uint256 internal constant DIAMOND_VALUE = 10000 * 10**18; uint256 internal constant GOLD_VALUE = 100 * 10**18; uint256 internal constant SILVER_VALUE = 10 * 10**18; uint256 internal constant BRONZE_VALUE = 1 * 10**18; // In addition to the initial total supply of 15496000000 Beercoins, // more Beercoins will only be added by scanning bottle caps. // 20800000000 bottle caps will be eventually produced. // // Within 10000 bottle caps, // 1 (i.e. every 10000th cap in total) has a value of 10000 ("Diamond") Beercoins, // 9 (i.e. every 1000th cap in total) have a value of 100 ("Gold") Beercoins, // 990 (i.e. every 10th cap in total) have a value of 10 ("Silver") Beercoins, // 9000 (i.e. every remaining cap) have a value of 1 ("Bronze") Beercoin. // // Therefore one bottle cap has an average Beercoin value of // (1 * 10000 + 9 * 100 + 990 * 10 + 9000 * 1) / 10000 = 2.98. // // This means the total Beercoin value of all bottle caps that will // be eventually produced equals 20800000000 * 2.98 = 61984000000. uint64 internal producibleCaps = 20800000000; // The amounts of diamond, gold, silver, and bronze caps are stored // as a single 256-bit value divided into four sections of 64 bits. // // Bits 255 to 192 are used for the amount of diamond caps, // bits 191 to 128 are used for the amount of gold caps, // bits 127 to 64 are used for the amount of silver caps, // bits 63 to 0 are used for the amount of bronze caps. // // For example, the following numbers represent a single cap of a certain type: // 0x0000000000000001000000000000000000000000000000000000000000000000 (diamond) // 0x0000000000000000000000000000000100000000000000000000000000000000 (gold) // 0x0000000000000000000000000000000000000000000000010000000000000000 (silver) // 0x0000000000000000000000000000000000000000000000000000000000000001 (bronze) uint256 internal packedProducedCaps = 0; uint256 internal packedScannedCaps = 0; // The amount of irreversibly burnt Beercoins uint256 internal burntValue = 0; } /** * A contract containing functions to understand the packed low-level data */ contract ExplorableBeercoin is InternalBeercoin { /** * The amount of caps that can still be produced */ function unproducedCaps() public view returns (uint64) { return producibleCaps; } /** * The amount of caps that is produced but not yet scanned */ function unscannedCaps() public view returns (uint64) { uint256 caps = packedProducedCaps - packedScannedCaps; uint64 amount = uint64(caps >> 192); amount += uint64(caps >> 128); amount += uint64(caps >> 64); amount += uint64(caps); return amount; } /** * The amount of all caps produced so far */ function producedCaps() public view returns (uint64) { uint256 caps = packedProducedCaps; uint64 amount = uint64(caps >> 192); amount += uint64(caps >> 128); amount += uint64(caps >> 64); amount += uint64(caps); return amount; } /** * The amount of all caps scanned so far */ function scannedCaps() public view returns (uint64) { uint256 caps = packedScannedCaps; uint64 amount = uint64(caps >> 192); amount += uint64(caps >> 128); amount += uint64(caps >> 64); amount += uint64(caps); return amount; } /** * The amount of diamond caps produced so far */ function producedDiamondCaps() public view returns (uint64) { return uint64(packedProducedCaps >> 192); } /** * The amount of diamond caps scanned so far */ function scannedDiamondCaps() public view returns (uint64) { return uint64(packedScannedCaps >> 192); } /** * The amount of gold caps produced so far */ function producedGoldCaps() public view returns (uint64) { return uint64(packedProducedCaps >> 128); } /** * The amount of gold caps scanned so far */ function scannedGoldCaps() public view returns (uint64) { return uint64(packedScannedCaps >> 128); } /** * The amount of silver caps produced so far */ function producedSilverCaps() public view returns (uint64) { return uint64(packedProducedCaps >> 64); } /** * The amount of silver caps scanned so far */ function scannedSilverCaps() public view returns (uint64) { return uint64(packedScannedCaps >> 64); } /** * The amount of bronze caps produced so far */ function producedBronzeCaps() public view returns (uint64) { return uint64(packedProducedCaps); } /** * The amount of bronze caps scanned so far */ function scannedBronzeCaps() public view returns (uint64) { return uint64(packedScannedCaps); } } /** * A contract implementing all standard ERC20 functionality for the Beercoin */ contract ERC20Beercoin is ExplorableBeercoin { event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); mapping (address => uint256) internal balances; mapping (address => mapping (address => uint256)) internal allowances; /** * Beercoin's name */ function name() public pure returns (string) { return "Beercoin"; } /** * Beercoin's symbol */ function symbol() public pure returns (string) { return "🍺"; } /** * Beercoin's decimal places */ function decimals() public pure returns (uint8) { return 18; } /** * The current total supply of Beercoins */ function totalSupply() public view returns (uint256) { uint256 caps = packedScannedCaps; uint256 supply = INITIAL_SUPPLY; supply += (caps >> 192) * DIAMOND_VALUE; supply += ((caps >> 128) & 0xFFFFFFFFFFFFFFFF) * GOLD_VALUE; supply += ((caps >> 64) & 0xFFFFFFFFFFFFFFFF) * SILVER_VALUE; supply += (caps & 0xFFFFFFFFFFFFFFFF) * BRONZE_VALUE; return supply - burntValue; } /** * Check the balance of a Beercoin user * * @param _owner the user to check */ function balanceOf(address _owner) public view returns (uint256) { return balances[_owner]; } /** * Transfer Beercoins to another user * * @param _to the address of the recipient * @param _value the amount to send */ function transfer(address _to, uint256 _value) public returns (bool) { require(_to != 0x0); uint256 balanceFrom = balances[msg.sender]; require(_value <= balanceFrom); uint256 oldBalanceTo = balances[_to]; uint256 newBalanceTo = oldBalanceTo + _value; require(oldBalanceTo <= newBalanceTo); balances[msg.sender] = balanceFrom - _value; balances[_to] = newBalanceTo; Transfer(msg.sender, _to, _value); return true; } /** * Transfer Beercoins from other address if a respective allowance exists * * @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) { require(_to != 0x0); uint256 balanceFrom = balances[_from]; uint256 allowanceFrom = allowances[_from][msg.sender]; require(_value <= balanceFrom); require(_value <= allowanceFrom); uint256 oldBalanceTo = balances[_to]; uint256 newBalanceTo = oldBalanceTo + _value; require(oldBalanceTo <= newBalanceTo); balances[_from] = balanceFrom - _value; balances[_to] = newBalanceTo; allowances[_from][msg.sender] = allowanceFrom - _value; Transfer(_from, _to, _value); return true; } /** * Allow another user to spend a certain amount of Beercoins on your behalf * * @param _spender the address of the user authorized to spend * @param _value the maximum amount that can be spent on your behalf */ function approve(address _spender, uint256 _value) public returns (bool) { allowances[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /** * The amount of Beercoins that can be spent by a user on behalf of another * * @param _owner the address of the user user whose Beercoins are spent * @param _spender the address of the user who executes the transaction */ function allowance(address _owner, address _spender) public view returns (uint256) { return allowances[_owner][_spender]; } } /** * A contract that defines a master with special debiting abilities * required for operating a user-friendly Beercoin redemption system */ contract MasteredBeercoin is ERC20Beercoin { address internal beercoinMaster; mapping (address => bool) internal directDebitAllowances; /** * Construct the MasteredBeercoin contract * and make the sender the master */ function MasteredBeercoin() public { beercoinMaster = msg.sender; } /** * Restrict to the master only */ modifier onlyMaster { require(msg.sender == beercoinMaster); _; } /** * The master of the Beercoin */ function master() public view returns (address) { return beercoinMaster; } /** * Declare a master at another address * * @param newMaster the new owner's address */ function declareNewMaster(address newMaster) public onlyMaster { beercoinMaster = newMaster; } /** * Allow the master to withdraw Beercoins from your * account so you don't have to send Beercoins yourself */ function allowDirectDebit() public { directDebitAllowances[msg.sender] = true; } /** * Forbid the master to withdraw Beercoins from you account */ function forbidDirectDebit() public { directDebitAllowances[msg.sender] = false; } /** * Check whether a user allows direct debits by the master * * @param user the user to check */ function directDebitAllowance(address user) public view returns (bool) { return directDebitAllowances[user]; } /** * Withdraw Beercoins from multiple users * * Beercoins are only withdrawn this way if and only if * a user deliberately wants it to happen by initiating * a transaction on a plattform operated by the owner * * @param users the addresses of the users to take Beercoins from * @param values the respective amounts to take */ function debit(address[] users, uint256[] values) public onlyMaster returns (bool) { require(users.length == values.length); uint256 oldBalance = balances[msg.sender]; uint256 newBalance = oldBalance; address currentUser; uint256 currentValue; uint256 currentBalance; for (uint256 i = 0; i < users.length; ++i) { currentUser = users[i]; currentValue = values[i]; currentBalance = balances[currentUser]; require(directDebitAllowances[currentUser]); require(currentValue <= currentBalance); balances[currentUser] = currentBalance - currentValue; newBalance += currentValue; Transfer(currentUser, msg.sender, currentValue); } require(oldBalance <= newBalance); balances[msg.sender] = newBalance; return true; } /** * Withdraw Beercoins from multiple users * * Beercoins are only withdrawn this way if and only if * a user deliberately wants it to happen by initiating * a transaction on a plattform operated by the owner * * @param users the addresses of the users to take Beercoins from * @param value the amount to take from each user */ function debitEqually(address[] users, uint256 value) public onlyMaster returns (bool) { uint256 oldBalance = balances[msg.sender]; uint256 newBalance = oldBalance + (users.length * value); require(oldBalance <= newBalance); balances[msg.sender] = newBalance; address currentUser; uint256 currentBalance; for (uint256 i = 0; i < users.length; ++i) { currentUser = users[i]; currentBalance = balances[currentUser]; require(directDebitAllowances[currentUser]); require(value <= currentBalance); balances[currentUser] = currentBalance - value; Transfer(currentUser, msg.sender, value); } return true; } /** * Send Beercoins to multiple users * * @param users the addresses of the users to send Beercoins to * @param values the respective amounts to send */ function credit(address[] users, uint256[] values) public onlyMaster returns (bool) { require(users.length == values.length); uint256 balance = balances[msg.sender]; uint256 totalValue = 0; address currentUser; uint256 currentValue; uint256 currentOldBalance; uint256 currentNewBalance; for (uint256 i = 0; i < users.length; ++i) { currentUser = users[i]; currentValue = values[i]; currentOldBalance = balances[currentUser]; currentNewBalance = currentOldBalance + currentValue; require(currentOldBalance <= currentNewBalance); balances[currentUser] = currentNewBalance; totalValue += currentValue; Transfer(msg.sender, currentUser, currentValue); } require(totalValue <= balance); balances[msg.sender] = balance - totalValue; return true; } /** * Send Beercoins to multiple users * * @param users the addresses of the users to send Beercoins to * @param value the amounts to send to each user */ function creditEqually(address[] users, uint256 value) public onlyMaster returns (bool) { uint256 balance = balances[msg.sender]; uint256 totalValue = users.length * value; require(totalValue <= balance); balances[msg.sender] = balance - totalValue; address currentUser; uint256 currentOldBalance; uint256 currentNewBalance; for (uint256 i = 0; i < users.length; ++i) { currentUser = users[i]; currentOldBalance = balances[currentUser]; currentNewBalance = currentOldBalance + value; require(currentOldBalance <= currentNewBalance); balances[currentUser] = currentNewBalance; Transfer(msg.sender, currentUser, value); } return true; } } /** * A contract that defines the central business logic * which also mirrors the life of a Beercoin */ contract Beercoin is MasteredBeercoin { event Produce(uint256 newCaps); event Scan(address[] users, uint256[] caps); event Burn(uint256 value); /** * Construct the Beercoin contract and * assign the initial supply to the creator */ function Beercoin() public { balances[msg.sender] = INITIAL_SUPPLY; } /** * Increase the amounts of produced diamond, gold, silver, and * bronze bottle caps in respect to their occurrence probabilities * * This function is called if and only if a brewery has actually * ordered codes to produce the specified amount of bottle caps * * @param numberOfCaps the number of bottle caps to be produced */ function produce(uint64 numberOfCaps) public onlyMaster returns (bool) { require(numberOfCaps <= producibleCaps); uint256 producedCaps = packedProducedCaps; uint64 targetTotalCaps = numberOfCaps; targetTotalCaps += uint64(producedCaps >> 192); targetTotalCaps += uint64(producedCaps >> 128); targetTotalCaps += uint64(producedCaps >> 64); targetTotalCaps += uint64(producedCaps); uint64 targetDiamondCaps = (targetTotalCaps - (targetTotalCaps % 10000)) / 10000; uint64 targetGoldCaps = ((targetTotalCaps - (targetTotalCaps % 1000)) / 1000) - targetDiamondCaps; uint64 targetSilverCaps = ((targetTotalCaps - (targetTotalCaps % 10)) / 10) - targetDiamondCaps - targetGoldCaps; uint64 targetBronzeCaps = targetTotalCaps - targetDiamondCaps - targetGoldCaps - targetSilverCaps; uint256 targetProducedCaps = 0; targetProducedCaps |= uint256(targetDiamondCaps) << 192; targetProducedCaps |= uint256(targetGoldCaps) << 128; targetProducedCaps |= uint256(targetSilverCaps) << 64; targetProducedCaps |= uint256(targetBronzeCaps); producibleCaps -= numberOfCaps; packedProducedCaps = targetProducedCaps; Produce(targetProducedCaps - producedCaps); return true; } /** * Approve scans of multiple users and grant Beercoins * * This function is called periodically to mass-transfer Beercoins to * multiple users if and only if each of them has scanned codes that * our server has never verified before for the same or another user * * @param users the addresses of the users who scanned valid codes * @param caps the amounts of caps the users have scanned as single 256-bit values */ function scan(address[] users, uint256[] caps) public onlyMaster returns (bool) { require(users.length == caps.length); uint256 scannedCaps = packedScannedCaps; uint256 currentCaps; uint256 capsValue; for (uint256 i = 0; i < users.length; ++i) { currentCaps = caps[i]; capsValue = DIAMOND_VALUE * (currentCaps >> 192); capsValue += GOLD_VALUE * ((currentCaps >> 128) & 0xFFFFFFFFFFFFFFFF); capsValue += SILVER_VALUE * ((currentCaps >> 64) & 0xFFFFFFFFFFFFFFFF); capsValue += BRONZE_VALUE * (currentCaps & 0xFFFFFFFFFFFFFFFF); balances[users[i]] += capsValue; scannedCaps += currentCaps; } require(scannedCaps <= packedProducedCaps); packedScannedCaps = scannedCaps; Scan(users, caps); return true; } /** * Remove Beercoins from the system irreversibly * * @param value the amount of Beercoins to burn */ function burn(uint256 value) public onlyMaster returns (bool) { uint256 balance = balances[msg.sender]; require(value <= balance); balances[msg.sender] = balance - value; burntValue += value; Burn(value); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"directDebitAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"producedCaps","outputs":[{"name":"","type":"uint64"}],"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":"producedDiamondCaps","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"forbidDirectDebit","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"producedSilverCaps","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"producedGoldCaps","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"burn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"scannedBronzeCaps","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"scannedCaps","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newMaster","type":"address"}],"name":"declareNewMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"producedBronzeCaps","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"scannedDiamondCaps","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"unproducedCaps","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"unscannedCaps","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"users","type":"address[]"},{"name":"value","type":"uint256"}],"name":"debitEqually","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"scannedSilverCaps","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"users","type":"address[]"},{"name":"value","type":"uint256"}],"name":"creditEqually","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"users","type":"address[]"},{"name":"values","type":"uint256[]"}],"name":"debit","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"allowDirectDebit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"users","type":"address[]"},{"name":"caps","type":"uint256[]"}],"name":"scan","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":false,"inputs":[{"name":"numberOfCaps","type":"uint64"}],"name":"produce","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"scannedGoldCaps","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"users","type":"address[]"},{"name":"values","type":"uint256[]"}],"name":"credit","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":true,"inputs":[],"name":"master","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newCaps","type":"uint256"}],"name":"Produce","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"users","type":"address[]"},{"indexed":false,"name":"caps","type":"uint256[]"}],"name":"Scan","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","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"},{"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"}]
Contract Creation Code
60606040526000805467ffffffffffffffff19166404d7c6d00017815560018190556002819055600355341561003457600080fd5b60068054600160a060020a033316600160a060020a0319909116811790915560009081526004602052604090206b3211fda33de48ff98800000090556116258061007f6000396000f3006060604052600436106101a05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630628769381146101a557806306fdde03146101d857806307336e3514610262578063095ea7b3146102925780630e53bf67146102b457806318160ddd146102c75780631b2212f5146102ec57806323b872dd14610301578063266fc4361461032957806330e6c3331461033c578063313ce5671461034f57806342966c681461037857806344b88a6d1461038e5780634509052f146103a15780634b2f9eb7146103b457806367ea43bd146103d35780636854df55146103e65780636f7495cb146103f95780636fbf466c1461040c57806370a082311461041f5780637634ecc01461043e57806378ec0adf1461048f57806383b40eb7146104a257806395d89b41146104f357806397c06deb146105065780639933a24a14610595578063a534a920146105a8578063a9059cbb14610637578063bc25415c14610659578063bf3da86514610679578063c89b50c71461068c578063dd62ed3e1461071b578063ee97f7f314610740575b600080fd5b34156101b057600080fd5b6101c4600160a060020a036004351661076f565b604051901515815260200160405180910390f35b34156101e357600080fd5b6101eb61078d565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561022757808201518382015260200161020f565b50505050905090810190601f1680156102545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561026d57600080fd5b6102756107ce565b60405167ffffffffffffffff909116815260200160405180910390f35b341561029d57600080fd5b6101c4600160a060020a03600435166024356107f1565b34156102bf57600080fd5b61027561085d565b34156102d257600080fd5b6102da61086a565b60405190815260200160405180910390f35b34156102f757600080fd5b6102ff6108e3565b005b341561030c57600080fd5b6101c4600160a060020a0360043581169060243516604435610905565b341561033457600080fd5b610275610a14565b341561034757600080fd5b610275610a26565b341561035a57600080fd5b610362610a33565b60405160ff909116815260200160405180910390f35b341561038357600080fd5b6101c4600435610a38565b341561039957600080fd5b610275610ae2565b34156103ac57600080fd5b610275610ae8565b34156103bf57600080fd5b6102ff600160a060020a0360043516610b0b565b34156103de57600080fd5b610275610b55565b34156103f157600080fd5b610275610b5b565b341561040457600080fd5b610275610b68565b341561041757600080fd5b610275610b78565b341561042a57600080fd5b6102da600160a060020a0360043516610ba2565b341561044957600080fd5b6101c460046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505093359350610bbd92505050565b341561049a57600080fd5b610275610cf2565b34156104ad57600080fd5b6101c460046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505093359350610d0492505050565b34156104fe57600080fd5b6101eb610e25565b341561051157600080fd5b6101c4600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610e6695505050505050565b34156105a057600080fd5b6102ff610fc3565b34156105b357600080fd5b6101c4600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610fe895505050505050565b341561064257600080fd5b6101c4600160a060020a03600435166024356111c7565b341561066457600080fd5b6101c467ffffffffffffffff6004351661128e565b341561068457600080fd5b610275611435565b341561069757600080fd5b6101c460046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375094965061144295505050505050565b341561072657600080fd5b6102da600160a060020a036004358116906024351661158d565b341561074b57600080fd5b6107536115b8565b604051600160a060020a03909116815260200160405180910390f35b600160a060020a031660009081526007602052604090205460ff1690565b6107956115c7565b60408051908101604052600881527f42656572636f696e0000000000000000000000000000000000000000000000006020820152905090565b60015460c060020a8104608060020a820401680100000000000000008204010190565b600160a060020a03338116600081815260056020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60015460c060020a900490565b60025460035467ffffffffffffffff808316670de0b6b3a7640000026801000000000000000084048216678ac7230489e8000002608060020a85049290921668056bc75e2d631000000260c060020a90940469021e19e0c9bab240000002939093010191909101036b3211fda33de48ff9880000000190565b600160a060020a0333166000908152600760205260409020805460ff19169055565b600080808080600160a060020a038716151561092057600080fd5b600160a060020a03808916600090815260046020908152604080832054600583528184203390951684529390915290205490945092508386111561096357600080fd5b8286111561097057600080fd5b5050600160a060020a0385166000908152600460205260409020548481018082111561099b57600080fd5b600160a060020a0380891660008181526004602090815260408083208b8a0390558b851680845281842087905584845260058352818420339096168452949091529081902089870390556000805160206115da8339815191529089905190815260200160405180910390a3506001979650505050505050565b60015468010000000000000000900490565b600154608060020a900490565b601290565b600654600090819033600160a060020a03908116911614610a5857600080fd5b50600160a060020a03331660009081526004602052604090205480831115610a7f57600080fd5b600160a060020a03331660009081526004602052604090819020848303905560038054850190557fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9084905190815260200160405180910390a150600192915050565b60025490565b60025460c060020a8104608060020a820401680100000000000000008204010190565b60065433600160a060020a03908116911614610b2657600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60015490565b60025460c060020a900490565b60005467ffffffffffffffff1690565b60025460015460c060020a919003908104608060020a820401680100000000000000008204010190565b600160a060020a031660009081526004602052604090205490565b6006546000908190819081908190819033600160a060020a03908116911614610be557600080fd5b600160a060020a0333166000908152600460205260409020549450868851028501935083851115610c1557600080fd5b50600160a060020a03331660009081526004602052604081208490555b8751811015610ce457878181518110610c4757fe5b90602001906020020151600160a060020a038116600090815260046020908152604080832054600790925290912054919450925060ff161515610c8957600080fd5b81871115610c9657600080fd5b600160a060020a03808416600081815260046020526040908190208a8603905533909216916000805160206115da833981519152908a905190815260200160405180910390a3600101610c32565b506001979650505050505050565b60025468010000000000000000900490565b60065460009081908190819081908190819033600160a060020a03908116911614610d2e57600080fd5b600160a060020a033316600090815260046020526040902054955087895102945085851115610d5c57600080fd5b50600160a060020a033316600090815260046020526040812085870390555b8851811015610e1657888181518110610d9057fe5b90602001906020020151600160a060020a0381166000908152600460205260409020549094509250878301915081831115610dca57600080fd5b600160a060020a038085166000818152600460205260409081902085905590913316906000805160206115da833981519152908b905190815260200160405180910390a3600101610d7b565b50600198975050505050505050565b610e2d6115c7565b60408051908101604052600481527ff09f8dba000000000000000000000000000000000000000000000000000000006020820152905090565b60065460009081908190819081908190819033600160a060020a03908116911614610e9057600080fd5b8751895114610e9e57600080fd5b50600160a060020a03331660009081526004602052604081205495508594505b8851811015610f8c57888181518110610ed357fe5b906020019060200201519350878181518110610eeb57fe5b90602001906020020151600160a060020a038516600090815260046020908152604080832054600790925290912054919450925060ff161515610f2d57600080fd5b81831115610f3a57600080fd5b600160a060020a038085166000818152600460205260409081902086860390559685019633909216916000805160206115da8339815191529086905190815260200160405180910390a3600101610ebe565b84861115610f9957600080fd5b50505033600160a060020a0316600090815260046020526040902091909155506001949350505050565b600160a060020a0333166000908152600760205260409020805460ff19166001179055565b600654600090819081908190819033600160a060020a0390811691161461100e57600080fd5b855187511461101c57600080fd5b50600254925060005b86518110156110eb5785818151811061103a57fe5b90602001906020020151925060c060020a830469021e19e0c9bab240000002608060020a840467ffffffffffffffff90811668056bc75e2d6310000002919091016801000000000000000085048216678ac7230489e800000201908416670de0b6b3a76400000201915081600460008984815181106110b557fe5b90602001906020020151600160a060020a0316815260208101919091526040016000208054909101905592820192600101611025565b6001548411156110fa57600080fd5b60028490557fdf9f92fb62c3da8cef6b817fa08d8a9fbd8726964b86a3640e35ba7df533b6298787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561116657808201518382015260200161114e565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156111a557808201518382015260200161118d565b5050505090500194505050505060405180910390a15060019695505050505050565b6000808080600160a060020a03861615156111e157600080fd5b600160a060020a03331660009081526004602052604090205492508285111561120957600080fd5b5050600160a060020a0384166000908152600460205260409020548381018082111561123457600080fd5b600160a060020a03338116600081815260046020526040808220898803905592891680825290839020849055916000805160206115da8339815191529088905190815260200160405180910390a350600195945050505050565b600654600090819081908190819081908190819033600160a060020a039081169116146112ba57600080fd5b60005467ffffffffffffffff908116908a1611156112d757600080fd5b600154965060c060020a87048901608060020a880401680100000000000000008804018701955061271067ffffffffffffffff808816829006880316049450846103e867ffffffffffffffff888116829006890316040393508385600a67ffffffffffffffff8981168290068a031604030392508284868803030391506000905060c08567ffffffffffffffff169060020a028117905060808467ffffffffffffffff169060020a028117905060408367ffffffffffffffff169060020a02811790508167ffffffffffffffff1681179050886000808282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550806001819055507f8e47a7a9f75060856558083a56a8969ecca26177786055e4f3a0d2eea227d67787820360405190815260200160405180910390a150600198975050505050505050565b600254608060020a900490565b600654600090819081908190819081908190819033600160a060020a0390811691161461146e57600080fd5b88518a511461147c57600080fd5b50600160a060020a03331660009081526004602052604081205496509450845b8951811015611553578981815181106114b157fe5b9060200190602002015194508881815181106114c957fe5b90602001906020020151600160a060020a038616600090815260046020526040902054909450925082840191508183111561150357600080fd5b600160a060020a03808616600081815260046020526040908190208590559786019790913316906000805160206115da8339815191529087905190815260200160405180910390a360010161149c565b8686111561156057600080fd5b50505033600160a060020a0316600090815260046020526040902092909303909155506001949350505050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b600654600160a060020a031690565b602060405190810160405260008152905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820bc9f64cea4d31ef8a9ad99d5a705b573f2beab4f553f567d78d8e32a4be400170029
Deployed Bytecode
0x6060604052600436106101a05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630628769381146101a557806306fdde03146101d857806307336e3514610262578063095ea7b3146102925780630e53bf67146102b457806318160ddd146102c75780631b2212f5146102ec57806323b872dd14610301578063266fc4361461032957806330e6c3331461033c578063313ce5671461034f57806342966c681461037857806344b88a6d1461038e5780634509052f146103a15780634b2f9eb7146103b457806367ea43bd146103d35780636854df55146103e65780636f7495cb146103f95780636fbf466c1461040c57806370a082311461041f5780637634ecc01461043e57806378ec0adf1461048f57806383b40eb7146104a257806395d89b41146104f357806397c06deb146105065780639933a24a14610595578063a534a920146105a8578063a9059cbb14610637578063bc25415c14610659578063bf3da86514610679578063c89b50c71461068c578063dd62ed3e1461071b578063ee97f7f314610740575b600080fd5b34156101b057600080fd5b6101c4600160a060020a036004351661076f565b604051901515815260200160405180910390f35b34156101e357600080fd5b6101eb61078d565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561022757808201518382015260200161020f565b50505050905090810190601f1680156102545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561026d57600080fd5b6102756107ce565b60405167ffffffffffffffff909116815260200160405180910390f35b341561029d57600080fd5b6101c4600160a060020a03600435166024356107f1565b34156102bf57600080fd5b61027561085d565b34156102d257600080fd5b6102da61086a565b60405190815260200160405180910390f35b34156102f757600080fd5b6102ff6108e3565b005b341561030c57600080fd5b6101c4600160a060020a0360043581169060243516604435610905565b341561033457600080fd5b610275610a14565b341561034757600080fd5b610275610a26565b341561035a57600080fd5b610362610a33565b60405160ff909116815260200160405180910390f35b341561038357600080fd5b6101c4600435610a38565b341561039957600080fd5b610275610ae2565b34156103ac57600080fd5b610275610ae8565b34156103bf57600080fd5b6102ff600160a060020a0360043516610b0b565b34156103de57600080fd5b610275610b55565b34156103f157600080fd5b610275610b5b565b341561040457600080fd5b610275610b68565b341561041757600080fd5b610275610b78565b341561042a57600080fd5b6102da600160a060020a0360043516610ba2565b341561044957600080fd5b6101c460046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505093359350610bbd92505050565b341561049a57600080fd5b610275610cf2565b34156104ad57600080fd5b6101c460046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505093359350610d0492505050565b34156104fe57600080fd5b6101eb610e25565b341561051157600080fd5b6101c4600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610e6695505050505050565b34156105a057600080fd5b6102ff610fc3565b34156105b357600080fd5b6101c4600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610fe895505050505050565b341561064257600080fd5b6101c4600160a060020a03600435166024356111c7565b341561066457600080fd5b6101c467ffffffffffffffff6004351661128e565b341561068457600080fd5b610275611435565b341561069757600080fd5b6101c460046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375094965061144295505050505050565b341561072657600080fd5b6102da600160a060020a036004358116906024351661158d565b341561074b57600080fd5b6107536115b8565b604051600160a060020a03909116815260200160405180910390f35b600160a060020a031660009081526007602052604090205460ff1690565b6107956115c7565b60408051908101604052600881527f42656572636f696e0000000000000000000000000000000000000000000000006020820152905090565b60015460c060020a8104608060020a820401680100000000000000008204010190565b600160a060020a03338116600081815260056020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60015460c060020a900490565b60025460035467ffffffffffffffff808316670de0b6b3a7640000026801000000000000000084048216678ac7230489e8000002608060020a85049290921668056bc75e2d631000000260c060020a90940469021e19e0c9bab240000002939093010191909101036b3211fda33de48ff9880000000190565b600160a060020a0333166000908152600760205260409020805460ff19169055565b600080808080600160a060020a038716151561092057600080fd5b600160a060020a03808916600090815260046020908152604080832054600583528184203390951684529390915290205490945092508386111561096357600080fd5b8286111561097057600080fd5b5050600160a060020a0385166000908152600460205260409020548481018082111561099b57600080fd5b600160a060020a0380891660008181526004602090815260408083208b8a0390558b851680845281842087905584845260058352818420339096168452949091529081902089870390556000805160206115da8339815191529089905190815260200160405180910390a3506001979650505050505050565b60015468010000000000000000900490565b600154608060020a900490565b601290565b600654600090819033600160a060020a03908116911614610a5857600080fd5b50600160a060020a03331660009081526004602052604090205480831115610a7f57600080fd5b600160a060020a03331660009081526004602052604090819020848303905560038054850190557fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9084905190815260200160405180910390a150600192915050565b60025490565b60025460c060020a8104608060020a820401680100000000000000008204010190565b60065433600160a060020a03908116911614610b2657600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60015490565b60025460c060020a900490565b60005467ffffffffffffffff1690565b60025460015460c060020a919003908104608060020a820401680100000000000000008204010190565b600160a060020a031660009081526004602052604090205490565b6006546000908190819081908190819033600160a060020a03908116911614610be557600080fd5b600160a060020a0333166000908152600460205260409020549450868851028501935083851115610c1557600080fd5b50600160a060020a03331660009081526004602052604081208490555b8751811015610ce457878181518110610c4757fe5b90602001906020020151600160a060020a038116600090815260046020908152604080832054600790925290912054919450925060ff161515610c8957600080fd5b81871115610c9657600080fd5b600160a060020a03808416600081815260046020526040908190208a8603905533909216916000805160206115da833981519152908a905190815260200160405180910390a3600101610c32565b506001979650505050505050565b60025468010000000000000000900490565b60065460009081908190819081908190819033600160a060020a03908116911614610d2e57600080fd5b600160a060020a033316600090815260046020526040902054955087895102945085851115610d5c57600080fd5b50600160a060020a033316600090815260046020526040812085870390555b8851811015610e1657888181518110610d9057fe5b90602001906020020151600160a060020a0381166000908152600460205260409020549094509250878301915081831115610dca57600080fd5b600160a060020a038085166000818152600460205260409081902085905590913316906000805160206115da833981519152908b905190815260200160405180910390a3600101610d7b565b50600198975050505050505050565b610e2d6115c7565b60408051908101604052600481527ff09f8dba000000000000000000000000000000000000000000000000000000006020820152905090565b60065460009081908190819081908190819033600160a060020a03908116911614610e9057600080fd5b8751895114610e9e57600080fd5b50600160a060020a03331660009081526004602052604081205495508594505b8851811015610f8c57888181518110610ed357fe5b906020019060200201519350878181518110610eeb57fe5b90602001906020020151600160a060020a038516600090815260046020908152604080832054600790925290912054919450925060ff161515610f2d57600080fd5b81831115610f3a57600080fd5b600160a060020a038085166000818152600460205260409081902086860390559685019633909216916000805160206115da8339815191529086905190815260200160405180910390a3600101610ebe565b84861115610f9957600080fd5b50505033600160a060020a0316600090815260046020526040902091909155506001949350505050565b600160a060020a0333166000908152600760205260409020805460ff19166001179055565b600654600090819081908190819033600160a060020a0390811691161461100e57600080fd5b855187511461101c57600080fd5b50600254925060005b86518110156110eb5785818151811061103a57fe5b90602001906020020151925060c060020a830469021e19e0c9bab240000002608060020a840467ffffffffffffffff90811668056bc75e2d6310000002919091016801000000000000000085048216678ac7230489e800000201908416670de0b6b3a76400000201915081600460008984815181106110b557fe5b90602001906020020151600160a060020a0316815260208101919091526040016000208054909101905592820192600101611025565b6001548411156110fa57600080fd5b60028490557fdf9f92fb62c3da8cef6b817fa08d8a9fbd8726964b86a3640e35ba7df533b6298787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561116657808201518382015260200161114e565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156111a557808201518382015260200161118d565b5050505090500194505050505060405180910390a15060019695505050505050565b6000808080600160a060020a03861615156111e157600080fd5b600160a060020a03331660009081526004602052604090205492508285111561120957600080fd5b5050600160a060020a0384166000908152600460205260409020548381018082111561123457600080fd5b600160a060020a03338116600081815260046020526040808220898803905592891680825290839020849055916000805160206115da8339815191529088905190815260200160405180910390a350600195945050505050565b600654600090819081908190819081908190819033600160a060020a039081169116146112ba57600080fd5b60005467ffffffffffffffff908116908a1611156112d757600080fd5b600154965060c060020a87048901608060020a880401680100000000000000008804018701955061271067ffffffffffffffff808816829006880316049450846103e867ffffffffffffffff888116829006890316040393508385600a67ffffffffffffffff8981168290068a031604030392508284868803030391506000905060c08567ffffffffffffffff169060020a028117905060808467ffffffffffffffff169060020a028117905060408367ffffffffffffffff169060020a02811790508167ffffffffffffffff1681179050886000808282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550806001819055507f8e47a7a9f75060856558083a56a8969ecca26177786055e4f3a0d2eea227d67787820360405190815260200160405180910390a150600198975050505050505050565b600254608060020a900490565b600654600090819081908190819081908190819033600160a060020a0390811691161461146e57600080fd5b88518a511461147c57600080fd5b50600160a060020a03331660009081526004602052604081205496509450845b8951811015611553578981815181106114b157fe5b9060200190602002015194508881815181106114c957fe5b90602001906020020151600160a060020a038616600090815260046020526040902054909450925082840191508183111561150357600080fd5b600160a060020a03808616600081815260046020526040908190208590559786019790913316906000805160206115da8339815191529087905190815260200160405180910390a360010161149c565b8686111561156057600080fd5b50505033600160a060020a0316600090815260046020526040902092909303909155506001949350505050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b600654600160a060020a031690565b602060405190810160405260008152905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820bc9f64cea4d31ef8a9ad99d5a705b573f2beab4f553f567d78d8e32a4be400170029
Swarm Source
bzzr://bc9f64cea4d31ef8a9ad99d5a705b573f2beab4f553f567d78d8e32a4be40017
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.