ERC-20
Overview
Max Total Supply
10,000,000 SHIRLEY
Holders
94
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
53.339322388080580189 SHIRLEYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
AutoRewardToken
Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.7.0; import '@solidstate/contracts/contracts/token/ERC20/ERC20.sol'; import '@solidstate/contracts/contracts/token/ERC20/ERC20MetadataStorage.sol'; import './AutoRewardTokenStorage.sol'; /** * @title Fee-on-transfer token with frictionless distribution to holders * @author Nick Barry */ contract AutoRewardToken is ERC20 { using ERC20MetadataStorage for ERC20MetadataStorage.Layout; uint private constant BP_DIVISOR = 10000; uint private constant REWARD_SCALAR = 1e36; constructor ( string memory name, string memory symbol, uint supply, uint fee ) { require(fee <= BP_DIVISOR, 'AutoRewardToken: fee must not exceed 10000 bp'); { ERC20MetadataStorage.Layout storage l = ERC20MetadataStorage.layout(); l.setName(name); l.setSymbol(symbol); l.setDecimals(18); } AutoRewardTokenStorage.layout().fee = fee; _mint(msg.sender, supply); } /** * @notice return network fee * @return fee in basis points */ function getFee () external view returns (uint) { return AutoRewardTokenStorage.layout().fee; } /** * @inheritdoc ERC20Base */ function balanceOf ( address account ) override public view returns (uint) { return super.balanceOf(account) + rewardsOf(account); } /** * @notice get pending rewards pending distribution to given account * @param account owner of rewards * @return quantity of rewards */ function rewardsOf ( address account ) public view returns (uint) { AutoRewardTokenStorage.Layout storage l = AutoRewardTokenStorage.layout(); return ( super.balanceOf(account) * l.cumulativeRewardPerToken + l.rewardsReserved[account] - l.rewardsExcluded[account] ) / REWARD_SCALAR; } /** * @inheritdoc ERC20Base * @notice override of _transfer function to include call to _afterTokenTransfer */ function _transfer ( address sender, address recipient, uint amount ) override internal { super._transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } /** * @notice ERC20 hook: apply fees and distribute rewards on transfer * @inheritdoc ERC20Base */ function _beforeTokenTransfer ( address from, address to, uint amount ) override internal { super._beforeTokenTransfer(from, to, amount); if (from == address(0) || to == address(0)) { return; } AutoRewardTokenStorage.Layout storage l = AutoRewardTokenStorage.layout(); uint fee = amount * l.fee / BP_DIVISOR; // update internal balances to include rewards uint rewardsFrom = rewardsOf(from); ERC20BaseStorage.layout().balances[from] += rewardsFrom; delete l.rewardsReserved[from]; uint rewardsTo = rewardsOf(to); ERC20BaseStorage.layout().balances[to] += rewardsTo; delete l.rewardsReserved[to]; // track exclusions from future rewards l.rewardsExcluded[from] = (super.balanceOf(from) - amount) * l.cumulativeRewardPerToken; l.rewardsExcluded[to] = (super.balanceOf(to) + amount - fee) * l.cumulativeRewardPerToken; // distribute rewards globally l.cumulativeRewardPerToken += (fee * REWARD_SCALAR) / (totalSupply() - fee); // simulate transfers emit Transfer(from, address(0), fee); emit Transfer(address(0), from, rewardsFrom); emit Transfer(address(0), to, rewardsTo); } /** * @notice ERC20 hook: remove fee from recipient * @param to recipient address * @param amount quantity transferred */ function _afterTokenTransfer ( address, address to, uint amount ) private { _burnFee(to, amount * AutoRewardTokenStorage.layout().fee / BP_DIVISOR); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.7.0; import './ERC20Base.sol'; import './ERC20Extended.sol'; import './ERC20Metadata.sol'; abstract contract ERC20 is ERC20Base, ERC20Extended, ERC20Metadata {}
// SPDX-License-Identifier: MIT pragma solidity ^0.7.0; library ERC20MetadataStorage { bytes32 internal constant STORAGE_SLOT = keccak256( 'solidstate.contracts.storage.ERC20Metadata' ); struct Layout { string name; string symbol; uint8 decimals; } function layout () internal pure returns (Layout storage l) { bytes32 slot = STORAGE_SLOT; assembly { l.slot := slot } } function setName ( Layout storage l, string memory name ) internal { l.name = name; } function setSymbol ( Layout storage l, string memory symbol ) internal { l.symbol = symbol; } function setDecimals ( Layout storage l, uint8 decimals ) internal { l.decimals = decimals; } }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.7.0; library AutoRewardTokenStorage { bytes32 internal constant STORAGE_SLOT = keccak256( 'solidstate.contracts.storage.AutoRewardToken' ); struct Layout { uint fee; uint cumulativeRewardPerToken; mapping (address => uint) rewardsExcluded; mapping (address => uint) rewardsReserved; } function layout () internal pure returns (Layout storage l) { bytes32 slot = STORAGE_SLOT; assembly { l.slot := slot } } }
// SPDX-License-Identifier: MIT pragma solidity ^0.7.0; import '../../utils/SafeMath.sol'; import './IERC20.sol'; import './ERC20BaseStorage.sol'; abstract contract ERC20Base is IERC20 { using SafeMath for uint; function totalSupply () override virtual public view returns (uint) { return ERC20BaseStorage.layout().totalSupply; } function balanceOf ( address account ) override virtual public view returns (uint) { return ERC20BaseStorage.layout().balances[account]; } function allowance ( address holder, address spender ) override virtual public view returns (uint) { return ERC20BaseStorage.layout().allowances[holder][spender]; } function transfer ( address recipient, uint amount ) override virtual public returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function transferFrom ( address sender, address recipient, uint amount ) override virtual public returns (bool) { _approve(sender, msg.sender, ERC20BaseStorage.layout().allowances[sender][msg.sender].sub(amount, 'ERC20: transfer amount exceeds allowance')); _transfer(sender, recipient, amount); return true; } function approve ( address spender, uint amount ) override virtual public returns (bool) { _approve(msg.sender, spender, amount); return true; } function _mint ( address account, uint amount ) virtual internal { require(account != address(0), 'ERC20: mint to the zero address'); _beforeTokenTransfer(address(0), account, amount); ERC20BaseStorage.Layout storage l = ERC20BaseStorage.layout(); l.totalSupply = l.totalSupply.add(amount); l.balances[account] = l.balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn ( address account, uint amount ) virtual internal { require(account != address(0), 'ERC20: burn from the zero address'); _beforeTokenTransfer(account, address(0), amount); ERC20BaseStorage.Layout storage l = ERC20BaseStorage.layout(); l.balances[account] = l.balances[account].sub(amount); l.totalSupply = l.totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _burnFee ( address account, uint amount ) virtual internal { require(account != address(0), 'ERC20: burn from the zero address'); _beforeTokenTransfer(account, address(0), amount); ERC20BaseStorage.Layout storage l = ERC20BaseStorage.layout(); l.balances[account] = l.balances[account].sub(amount); //l.totalSupply = l.totalSupply.sub(amount); //emit Transfer(account, address(0), amount); } function _transfer ( address sender, address recipient, uint amount ) virtual internal { require(sender != address(0), 'ERC20: transfer from the zero address'); require(recipient != address(0), 'ERC20: transfer to the zero address'); _beforeTokenTransfer(sender, recipient, amount); ERC20BaseStorage.Layout storage l = ERC20BaseStorage.layout(); l.balances[sender] = l.balances[sender].sub(amount, 'ERC20: transfer amount exceeds balance'); l.balances[recipient] = l.balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _approve ( address holder, address spender, uint amount ) virtual internal { require(holder != address(0), 'ERC20: approve from the zero address'); require(spender != address(0), 'ERC20: approve to the zero address'); ERC20BaseStorage.layout().allowances[holder][spender] = amount; emit Approval(holder, spender, amount); } function _beforeTokenTransfer ( address from, address to, uint amount ) virtual internal {} }
// SPDX-License-Identifier: MIT pragma solidity ^0.7.0; import '../../utils/SafeMath.sol'; import './ERC20Base.sol'; abstract contract ERC20Extended is ERC20Base { using SafeMath for uint; function increaseAllowance (address spender, uint amount) virtual public returns (bool) { _approve(msg.sender, spender, ERC20BaseStorage.layout().allowances[msg.sender][spender].add(amount)); return true; } function decreaseAllowance (address spender, uint amount) virtual public returns (bool) { _approve(msg.sender, spender, ERC20BaseStorage.layout().allowances[msg.sender][spender].sub(amount)); return true; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.7.0; import './ERC20Base.sol'; import './ERC20MetadataStorage.sol'; abstract contract ERC20Metadata is ERC20Base { function name () virtual public view returns (string memory) { return ERC20MetadataStorage.layout().name; } function symbol () virtual public view returns (string memory) { return ERC20MetadataStorage.layout().symbol; } function decimals () virtual public view returns (uint8) { return ERC20MetadataStorage.layout().decimals; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /** * @dev derived from https://github.com/OpenZeppelin/openzeppelin-contracts (MIT license) */ library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b > a) return (false, 0); return (true, a - b); } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a / b); } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a % b); } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) return 0; uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: division by zero"); return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: modulo by zero"); return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a / b; } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a % b; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.7.0; interface IERC20 { event Transfer( address indexed from, address indexed to, uint256 value ); event Approval( address indexed owner, address indexed spender, uint256 value ); function totalSupply () external view returns (uint256); function balanceOf ( address account ) external view returns (uint256); function transfer ( address recipient, uint256 amount ) external returns (bool); function allowance ( address owner, address spender ) external view returns (uint256); function approve ( address spender, uint256 amount ) external returns (bool); function transferFrom ( address sender, address recipient, uint256 amount ) external returns (bool); }
// SPDX-License-Identifier: MIT pragma solidity ^0.7.0; library ERC20BaseStorage { bytes32 internal constant STORAGE_SLOT = keccak256( 'solidstate.contracts.storage.ERC20Base' ); struct Layout { mapping (address => uint) balances; mapping (address => mapping (address => uint)) allowances; uint totalSupply; } function layout () internal pure returns (Layout storage l) { bytes32 slot = STORAGE_SLOT; assembly { l.slot := slot } } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"rewardsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040516200188938038062001889833981810160405260808110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b50604090815260208201519101519092509050612710811115620001ee5760405162461bcd60e51b815260040180806020018281038252602d8152602001806200185c602d913960400191505060405180910390fd5b6000620002056200028460201b6200061b1760201c565b9050620002218582620002a860201b6200063f1790919060201c565b6200023b8482620002c160201b620006561790919060201c565b62000256601282620002d860201b6200066b1790919060201c565b50806200026d620002f160201b620006841760201c565b556200027a338362000315565b50505050620008b0565b7f2967a798b92539a1b9eefe4d8eb931f96b68d27665e276f1bee2d5db7f74304790565b8051620002bc908390602084019062000804565b505050565b8051620002bc906001840190602084019062000804565b600291909101805460ff191660ff909216919091179055565b7f5e6e5da2b20a0fb05fc8fe0e6a606c507b965fcedc3075b687dbfd62da8f8e0a90565b6001600160a01b03821662000371576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6200037f6000838362000431565b600062000396620006a460201b620006a81760201c565b9050620003b6828260020154620006c860201b620006cc1790919060201c565b60028201556001600160a01b03831660009081526020828152604090912054620003eb918490620006cc620006c8821b17901c565b6001600160a01b0384166000818152602084815260408083209490945583518681529351929391926000805160206200183c8339815191529281900390910190a3505050565b62000449838383620002bc60201b620006511760201c565b6001600160a01b03831615806200046757506001600160a01b038216155b156200047357620002bc565b60006200048a620002f160201b620006841760201c565b905060006127108260000154840281620004a057fe5b0490506000620004b0866200072a565b905080620004c8620006a460201b620006a81760201c565b6001600160a01b03881660009081526020918252604080822080549094019093556003860190915290812081905562000501866200072a565b90508062000519620006a460201b620006a81760201c565b6001600160a01b038816600090815260209182526040808220805490940190935560038701825291822091909155600185015490869062000565908a906200072d620007ad821b17901c565b0302846002016000896001600160a01b03166001600160a01b031681526020019081526020016000208190555083600101548386620005af89620007ad60201b6200072d1760201c565b6001600160a01b038a166000908152600289016020526040902091019190910391909102905582620005e0620007e4565b036ec097ce7bc90715b34b9f1000000000840281620005fb57fe5b600186018054929091049190910190556040805184815290516000916001600160a01b038a16916000805160206200183c8339815191529181900360200190a36040805183815290516001600160a01b038916916000916000805160206200183c8339815191529181900360200190a36040805182815290516001600160a01b038816916000916000805160206200183c8339815191529181900360200190a350505050505050565b7fc991b2e918acaba8e5721668ed0b1982684e5a8692a621bcd2d7ef326bb015b490565b60008282018381101562000723576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60008062000742620002f160201b620006841760201c565b6001600160a01b038416600090815260028201602090815260408083205460038501835292205460018401549394506ec097ce7bc90715b34b9f10000000009390916200079a9088906200072d620007ad821b17901c565b02010381620007a557fe5b049392505050565b6000620007c4620006a460201b620006a81760201c565b6001600160a01b0392909216600090815260209290925250604090205490565b6000620007fb620006a460201b620006a81760201c565b60020154905090565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200083c576000855562000887565b82601f106200085757805160ff191683800117855562000887565b8280016001018555821562000887579182015b82811115620008875782518255916020019190600101906200086a565b506200089592915062000899565b5090565b5b808211156200089557600081556001016200089a565b610f7c80620008c06000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063479ba7ae1161008c578063a457c2d711610066578063a457c2d71461027f578063a9059cbb146102ab578063ced72f87146102d7578063dd62ed3e146102df576100cf565b8063479ba7ae1461022b57806370a082311461025157806395d89b4114610277576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab578063313ce567146101e157806339509351146101ff575b600080fd5b6100dc61030d565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b0381351690602001356103a5565b604080519115158252519081900360200190f35b6101996103bb565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b038135811691602081013590911690604001356103ce565b6101e9610443565b6040805160ff9092168252519081900360200190f35b61017d6004803603604081101561021557600080fd5b506001600160a01b038135169060200135610459565b6101996004803603602081101561024157600080fd5b50356001600160a01b031661049a565b6101996004803603602081101561026757600080fd5b50356001600160a01b0316610502565b6100dc61051d565b61017d6004803603604081101561029557600080fd5b506001600160a01b038135169060200135610583565b61017d600480360360408110156102c157600080fd5b506001600160a01b0381351690602001356105c4565b6101996105d1565b610199600480360360408110156102f557600080fd5b506001600160a01b03813581169160200135166105e1565b606061031761061b565b805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561039b5780601f106103705761010080835404028352916020019161039b565b820191906000526020600020905b81548152906001019060200180831161037e57829003601f168201915b5050505050905090565b60006103b2338484610757565b50600192915050565b60006103c56106a8565b60020154905090565b600061042e843361042985604051806060016040528060288152602001610e95602891396103fa6106a8565b6001600160a01b038b166000908152600191909101602090815260408083203384529091529020549190610856565b610757565b6104398484846108ed565b5060019392505050565b600061044d61061b565b6002015460ff16905090565b60006103b233846104298561046c6106a8565b336000908152600191909101602090815260408083206001600160a01b038c168452909152902054906106cc565b6000806104a5610684565b6001600160a01b0384166000908152600282016020908152604080832054600385019092529091205460018301549293506ec097ce7bc90715b34b9f1000000000926104f08761072d565b020103816104fa57fe5b049392505050565b600061050d8261049a565b6105168361072d565b0192915050565b606061052761061b565b60019081018054604080516020600295841615610100026000190190931694909404601f81018390048302850183019091528084529083018282801561039b5780601f106103705761010080835404028352916020019161039b565b60006103b23384610429856105966106a8565b336000908152600191909101602090815260408083206001600160a01b038c16845290915290205490610903565b60006103b23384846108ed565b60006105db610684565b54905090565b60006105eb6106a8565b6001600160a01b039384166000908152600191909101602090815260408083209490951682529290925250205490565b7f2967a798b92539a1b9eefe4d8eb931f96b68d27665e276f1bee2d5db7f74304790565b80516106519083906020840190610d88565b505050565b80516106519060018401906020840190610d88565b600291909101805460ff191660ff909216919091179055565b7f5e6e5da2b20a0fb05fc8fe0e6a606c507b965fcedc3075b687dbfd62da8f8e0a90565b7fc991b2e918acaba8e5721668ed0b1982684e5a8692a621bcd2d7ef326bb015b490565b600082820183811015610726576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006107376106a8565b6001600160a01b0392909216600090815260209290925250604090205490565b6001600160a01b03831661079c5760405162461bcd60e51b8152600401808060200182810382526024815260200180610f236024913960400191505060405180910390fd5b6001600160a01b0382166107e15760405162461bcd60e51b8152600401808060200182810382526022815260200180610e4d6022913960400191505060405180910390fd5b806107ea6106a8565b6001600160a01b03808616600081815260019390930160209081526040808520938816808652938252938490209490945582518581529251919390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a3505050565b600081848411156108e55760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156108aa578181015183820152602001610892565b50505050905090810190601f1680156108d75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6108f8838383610960565b610651838383610ab6565b60008282111561095a576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b0383166109a55760405162461bcd60e51b8152600401808060200182810382526025815260200180610efe6025913960400191505060405180910390fd5b6001600160a01b0382166109ea5760405162461bcd60e51b8152600401808060200182810382526023815260200180610e2a6023913960400191505060405180910390fd5b6109f5838383610ad5565b60006109ff6106a8565b9050610a3e82604051806060016040528060268152602001610e6f602691396001600160a01b0387166000908152602085905260409020549190610856565b6001600160a01b038086166000908152602084905260408082209390935590851681522054610a6d90836106cc565b6001600160a01b03808516600081815260208581526040918290209490945580518681529051919392881692600080516020610ebd83398151915292918290030190a350505050565b61065182612710610ac5610684565b54840281610acf57fe5b04610ce6565b610ae0838383610651565b6001600160a01b0383161580610afd57506001600160a01b038216155b15610b0757610651565b6000610b11610684565b905060006127108260000154840281610b2657fe5b0490506000610b348661049a565b905080610b3f6106a8565b6001600160a01b038816600090815260209182526040808220805490940190935560038601909152908120819055610b768661049a565b905080610b816106a8565b6001600160a01b03881660009081526020918252604080822080549094019093556003870190915290812055600184015485610bbc8961072d565b6001600160a01b038a166000908152600288016020526040902091900391909102905560018401548386610bef8961072d565b010302846002016000886001600160a01b03166001600160a01b031681526020019081526020016000208190555082610c266103bb565b036ec097ce7bc90715b34b9f1000000000840281610c4057fe5b600186018054929091049190910190556040805184815290516000916001600160a01b038a1691600080516020610ebd8339815191529181900360200190a36040805183815290516001600160a01b03891691600091600080516020610ebd8339815191529181900360200190a36040805182815290516001600160a01b03881691600091600080516020610ebd8339815191529181900360200190a350505050505050565b6001600160a01b038216610d2b5760405162461bcd60e51b8152600401808060200182810382526021815260200180610edd6021913960400191505060405180910390fd5b610d3782600083610ad5565b6000610d416106a8565b6001600160a01b038416600090815260208290526040902054909150610d679083610903565b6001600160a01b039093166000908152602091909152604090209190915550565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282610dbe5760008555610e04565b82601f10610dd757805160ff1916838001178555610e04565b82800160010185558215610e04579182015b82811115610e04578251825591602001919060010190610de9565b50610e10929150610e14565b5090565b5b80821115610e105760008155600101610e1556fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a26469706673582212206f191e6a620cab606f74e47670379317a73da62a3e86efb9ffd97b33edb22a3164736f6c63430007060033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4175746f526577617264546f6b656e3a20666565206d757374206e6f7420657863656564203130303030206270000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000084595161401484a000000000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000000f534849524c45592054484520524f5400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007534849524c455900000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063479ba7ae1161008c578063a457c2d711610066578063a457c2d71461027f578063a9059cbb146102ab578063ced72f87146102d7578063dd62ed3e146102df576100cf565b8063479ba7ae1461022b57806370a082311461025157806395d89b4114610277576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab578063313ce567146101e157806339509351146101ff575b600080fd5b6100dc61030d565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b0381351690602001356103a5565b604080519115158252519081900360200190f35b6101996103bb565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b038135811691602081013590911690604001356103ce565b6101e9610443565b6040805160ff9092168252519081900360200190f35b61017d6004803603604081101561021557600080fd5b506001600160a01b038135169060200135610459565b6101996004803603602081101561024157600080fd5b50356001600160a01b031661049a565b6101996004803603602081101561026757600080fd5b50356001600160a01b0316610502565b6100dc61051d565b61017d6004803603604081101561029557600080fd5b506001600160a01b038135169060200135610583565b61017d600480360360408110156102c157600080fd5b506001600160a01b0381351690602001356105c4565b6101996105d1565b610199600480360360408110156102f557600080fd5b506001600160a01b03813581169160200135166105e1565b606061031761061b565b805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561039b5780601f106103705761010080835404028352916020019161039b565b820191906000526020600020905b81548152906001019060200180831161037e57829003601f168201915b5050505050905090565b60006103b2338484610757565b50600192915050565b60006103c56106a8565b60020154905090565b600061042e843361042985604051806060016040528060288152602001610e95602891396103fa6106a8565b6001600160a01b038b166000908152600191909101602090815260408083203384529091529020549190610856565b610757565b6104398484846108ed565b5060019392505050565b600061044d61061b565b6002015460ff16905090565b60006103b233846104298561046c6106a8565b336000908152600191909101602090815260408083206001600160a01b038c168452909152902054906106cc565b6000806104a5610684565b6001600160a01b0384166000908152600282016020908152604080832054600385019092529091205460018301549293506ec097ce7bc90715b34b9f1000000000926104f08761072d565b020103816104fa57fe5b049392505050565b600061050d8261049a565b6105168361072d565b0192915050565b606061052761061b565b60019081018054604080516020600295841615610100026000190190931694909404601f81018390048302850183019091528084529083018282801561039b5780601f106103705761010080835404028352916020019161039b565b60006103b23384610429856105966106a8565b336000908152600191909101602090815260408083206001600160a01b038c16845290915290205490610903565b60006103b23384846108ed565b60006105db610684565b54905090565b60006105eb6106a8565b6001600160a01b039384166000908152600191909101602090815260408083209490951682529290925250205490565b7f2967a798b92539a1b9eefe4d8eb931f96b68d27665e276f1bee2d5db7f74304790565b80516106519083906020840190610d88565b505050565b80516106519060018401906020840190610d88565b600291909101805460ff191660ff909216919091179055565b7f5e6e5da2b20a0fb05fc8fe0e6a606c507b965fcedc3075b687dbfd62da8f8e0a90565b7fc991b2e918acaba8e5721668ed0b1982684e5a8692a621bcd2d7ef326bb015b490565b600082820183811015610726576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006107376106a8565b6001600160a01b0392909216600090815260209290925250604090205490565b6001600160a01b03831661079c5760405162461bcd60e51b8152600401808060200182810382526024815260200180610f236024913960400191505060405180910390fd5b6001600160a01b0382166107e15760405162461bcd60e51b8152600401808060200182810382526022815260200180610e4d6022913960400191505060405180910390fd5b806107ea6106a8565b6001600160a01b03808616600081815260019390930160209081526040808520938816808652938252938490209490945582518581529251919390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a3505050565b600081848411156108e55760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156108aa578181015183820152602001610892565b50505050905090810190601f1680156108d75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6108f8838383610960565b610651838383610ab6565b60008282111561095a576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b0383166109a55760405162461bcd60e51b8152600401808060200182810382526025815260200180610efe6025913960400191505060405180910390fd5b6001600160a01b0382166109ea5760405162461bcd60e51b8152600401808060200182810382526023815260200180610e2a6023913960400191505060405180910390fd5b6109f5838383610ad5565b60006109ff6106a8565b9050610a3e82604051806060016040528060268152602001610e6f602691396001600160a01b0387166000908152602085905260409020549190610856565b6001600160a01b038086166000908152602084905260408082209390935590851681522054610a6d90836106cc565b6001600160a01b03808516600081815260208581526040918290209490945580518681529051919392881692600080516020610ebd83398151915292918290030190a350505050565b61065182612710610ac5610684565b54840281610acf57fe5b04610ce6565b610ae0838383610651565b6001600160a01b0383161580610afd57506001600160a01b038216155b15610b0757610651565b6000610b11610684565b905060006127108260000154840281610b2657fe5b0490506000610b348661049a565b905080610b3f6106a8565b6001600160a01b038816600090815260209182526040808220805490940190935560038601909152908120819055610b768661049a565b905080610b816106a8565b6001600160a01b03881660009081526020918252604080822080549094019093556003870190915290812055600184015485610bbc8961072d565b6001600160a01b038a166000908152600288016020526040902091900391909102905560018401548386610bef8961072d565b010302846002016000886001600160a01b03166001600160a01b031681526020019081526020016000208190555082610c266103bb565b036ec097ce7bc90715b34b9f1000000000840281610c4057fe5b600186018054929091049190910190556040805184815290516000916001600160a01b038a1691600080516020610ebd8339815191529181900360200190a36040805183815290516001600160a01b03891691600091600080516020610ebd8339815191529181900360200190a36040805182815290516001600160a01b03881691600091600080516020610ebd8339815191529181900360200190a350505050505050565b6001600160a01b038216610d2b5760405162461bcd60e51b8152600401808060200182810382526021815260200180610edd6021913960400191505060405180910390fd5b610d3782600083610ad5565b6000610d416106a8565b6001600160a01b038416600090815260208290526040902054909150610d679083610903565b6001600160a01b039093166000908152602091909152604090209190915550565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282610dbe5760008555610e04565b82601f10610dd757805160ff1916838001178555610e04565b82800160010185558215610e04579182015b82811115610e04578251825591602001919060010190610de9565b50610e10929150610e14565b5090565b5b80821115610e105760008155600101610e1556fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a26469706673582212206f191e6a620cab606f74e47670379317a73da62a3e86efb9ffd97b33edb22a3164736f6c63430007060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000084595161401484a000000000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000000f534849524c45592054484520524f5400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007534849524c455900000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name (string): SHIRLEY THE ROT
Arg [1] : symbol (string): SHIRLEY
Arg [2] : supply (uint256): 10000000000000000000000000
Arg [3] : fee (uint256): 300
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 000000000000000000000000000000000000000000084595161401484a000000
Arg [3] : 000000000000000000000000000000000000000000000000000000000000012c
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [5] : 534849524c45592054484520524f540000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [7] : 534849524c455900000000000000000000000000000000000000000000000000
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.