ETH Price: $2,374.83 (-1.44%)

Token

Choice (CHOICE)
 

Overview

Max Total Supply

11,000,000 CHOICE

Holders

84

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Balance
17,617.15 CHOICE

Value
$0.00
0xa0717d83645a10D73CE3DFE4f48B052BA19C2322
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Vyper_contract

Compiler Version
vyper:0.3.7

Optimization Enabled:
N/A

Other Settings:
None license

Contract Source Code (Vyper language format)

# @version 0.3.7

"""
@title Protect Our Choice
@notice A women-led, crypto-backed startup connecting women’s rights and LGBTQIA advocacy nonprofits to crypto and Web3!

Major partnerships. dApp in final stages. Education and outreach platform in development. Custom, fully-audited contract. 

Giving a voice to communities who rarely get a seat at the table.

Telegram: https://t.me/ProtectOurChoice

Website: https://www.protectourchoice.org/

Twitter: https://twitter.com/protect_choice
"""

from vyper.interfaces import ERC20

interface IUniswapV2Router02:
    def WETH() -> address: view

    def addLiquidityETH(
        _token: address,
        _amountTokenDesired: uint256,
        _amountTokenMin: uint256,
        _amountETHMin: uint256,
        _to: address,
        _deadline: uint256
    ) -> (uint256, uint256, uint256): payable

    def swapExactTokensForETHSupportingFeeOnTransferTokens(
        _amountIn: uint256,
        _amountOutMin: uint256,
        _path: DynArray[address, 3],
        _to: address,
        _deadline: uint256
    ): nonpayable

interface IUniswapV2Factory:

    def getPair(
        _tokenA: address,
        _tokenB: address
    ) -> address: view

    def createPair(
        _tokenA: address,
        _tokenB: address
    ) -> address: nonpayable

implements: ERC20

event Approval:
    owner: indexed(address)
    spender: indexed(address)
    value: uint256

event Transfer:
    sender: indexed(address)
    receiver: indexed(address)
    value: uint256

event SetRouter:
    newRouter: indexed(address)

event TransferOwnership:
    newOwner: indexed(address)

event SetSwapThreshold:
    value: uint256

event RemoveLimits:
    maxTx: uint256
    maxWallet: uint256

event SetTaxes:
    buyTax: uint8
    sellTax: uint8

event IsTrading:
    hasPaused: bool

event StartTrading:
    startBlock: uint256
    canTrade: bool    

# Public generated getters
name: public(String[64])
symbol: public(String[32])
decimals: public(uint8)
totalSupply: public(uint256)
balanceOf: public(HashMap[address, uint256])
allowance: public(HashMap[address, HashMap[address, uint256]])
buyTax: public(uint8)
sellTax: public(uint8)
isTrading: public(bool)
owner: public(address)
operationsWallet: public(address)
launchedAt: public(uint256)
swapThreshold: public(uint256)
txLimit: public(uint256)
walletCap: public(uint256)
routerAddress: public(address)
tradingPair: public(address)

# Internal use var
WETH: constant(address) = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
MAX_TAX: constant(uint8) = 25
FACTORY_ADDRESS: immutable(IUniswapV2Factory)
amountReceive: uint256
inSwap: bool
pauseCounter: uint8

@external
def __init__(
    _name: String[64], 
    _symbol: String[32], 
    _decimals: uint8, 
    _total_supply: uint256):
    init_supply: uint256 = _total_supply * 10 ** convert(_decimals, uint256)
    self.name = _name
    self.symbol = _symbol
    self.decimals = _decimals
    self.balanceOf[msg.sender] = init_supply
    self.totalSupply = init_supply
    self.owner = msg.sender
    self.txLimit = self.totalSupply * 2 / 100
    self.walletCap = self.totalSupply * 2 / 100
    FACTORY_ADDRESS = IUniswapV2Factory(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f)
    self.tradingPair = FACTORY_ADDRESS.createPair(self, WETH)
    log Transfer(empty(address), msg.sender, init_supply)

##########
# @dev Functions below for internal use
##########

@internal
def _checkOwner() -> bool:
    """
    @dev Internal bool check for owner assert
    """
    assert msg.sender == self.owner, "ah ah ah, you didn't say the magic word"
    return True

@internal
def _distributeSellTax(_from: address, _to: address, _value: uint256):
    """
    @dev Internal function for the tax math distribution
    """
    sellFeeAmount: uint256 = _value * convert(self.sellTax, uint256) / 100
    if self.allowance[_from][msg.sender] != max_value(uint256):
        self._decreaseAllowance(_from, msg.sender, _value)
    self.balanceOf[_from] -= _value
    self.balanceOf[self] += sellFeeAmount  # Transfer tax amount to self(contract)
    self.balanceOf[_to] += _value - sellFeeAmount # Transfer token amount minus tax to holder
    self.inSwap = False
    log Transfer(_from, self, sellFeeAmount)
    log Transfer(_from, _to, _value)

@internal
def _distributeBuyTax(_from: address, _to: address, _value: uint256):
    """
    @dev Internal function for the tax math distribution
    """
    buyFeeAmount: uint256 = _value * convert(self.buyTax, uint256) / 100
    self.balanceOf[_from] -= _value
    self.balanceOf[self] += buyFeeAmount  # Transfer tax amount to self(contract)
    self.balanceOf[_to] += _value - buyFeeAmount # Transfer token amount minus tax to holder
    log Transfer(_from, self, buyFeeAmount)
    log Transfer(_from, _to, _value)

@internal 
def _transfer(_from: address, _to: address, _value: uint256) -> bool:
    assert _from != empty(address)
    assert _to != empty(address)
    if _from == self.owner or _to == self.owner:
        self._basicTransfer(_from, _to, _value)
    elif _from == self and _to == self.tradingPair:
        self._basicTransfer(_from, _to, _value)
    else:
        assert self.isTrading == True
        assert _value > 0 and _value <= self.txLimit
        if _to == self.tradingPair:
            if not self.inSwap and self.balanceOf[self] >= self.swapThreshold:
                self._swapBack()
            self._distributeSellTax(_from, _to, _value)
        else:
            assert self.balanceOf[_to] + _value <= self.walletCap
            self._distributeBuyTax(_from, _to, _value)
    return True

@internal 
def _basicTransfer(_from: address,_to: address,_value: uint256):
    self.balanceOf[_from] -= _value
    self.balanceOf[_to] += _value
    log Transfer(_from, _to, _value)

@internal 
def _swapBack() -> bool:
    """
    @dev Internal function for swapping contract tokens for eth
         using uniswap router
    """
    self.inSwap = True
    self._approve(self, self.routerAddress, self.swapThreshold)
    router: IUniswapV2Router02 = IUniswapV2Router02(self.routerAddress)
    router.swapExactTokensForETHSupportingFeeOnTransferTokens(
        self.swapThreshold,
        0,
        [self, WETH],
        self,
        block.timestamp + 4
    )
    return True

@internal
def _approve(_owner: address, _spender: address, _value: uint256):
    self.allowance[_owner][_spender] = _value
    log Approval(msg.sender, _spender, _value)

@internal 
def _decreaseAllowance(_owner: address, _spender: address, _subtractedValue: uint256):
    """
    @dev Internal function to atomically decrease allowance if not max_value(uint356)
    """
    _currentAllowance: uint256 = self.allowance[_owner][_spender]
    assert _currentAllowance >= _subtractedValue
    self._approve(_owner, _spender, _currentAllowance - _subtractedValue)

##########
# @dev Functions below are public functions
##########

@external
@payable
def __default__():
    pass

@external
def approve(_spender : address, _value : uint256) -> bool:
    """
    @notice Approve an address to spend the specified amount of tokens on behalf of msg.sender
    @dev Beware that changing an allowance with this method brings the risk that someone may use both the old
         and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
         race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
         https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    @param _spender The address which will spend the funds.
    @param _value The amount of tokens to be spent.
    @return Success boolean
    """
    self._approve(msg.sender, _spender, _value)
    return True

@external
def transfer(_to : address, _value : uint256) -> bool:
    """
    @notice Transfer tokens to a specified address
    @dev Vyper does not allow underflows, so attempting to transfer more
         tokens than an account has will revert
    @param _to The address to transfer to
    @param _value The amount to be transferred
    @return Internal _transfer
    """
    return self._transfer(msg.sender, _to, _value)

@external
def transferFrom(_from : address, _to : address, _value : uint256) -> bool:
    """
    @notice Transfer tokens from one address to another
    @dev Vyper does not allow underflows, so attempting to transfer more
         tokens than an account has will revert
    @param _from The address which you want to send tokens from
    @param _to The address which you want to transfer to
    @param _value The amount of tokens to be transferred
    @return Internal _transfer
    """
    return self._transfer(_from, _to, _value)
    
##########
# @dev Functions below are owner only
##########

@external
def canTrade():
    """
    @dev Owner only function to enable trading
    """
    self._checkOwner()
    self.launchedAt = block.timestamp
    self.isTrading = True
    log StartTrading(self.launchedAt, self.isTrading)

@external
def pauseTrading():
    """
    @dev Owner only function that only be called once for emergency use.
         self.isTrading will change to false. Setting the pauseCounter to 1 
         will allow the contract to only be paused once and will be able to 
         resume, but thereafter will revert
    """
    self._checkOwner()
    if self.pauseCounter < 1:
        self.pauseCounter += 1
        self.isTrading = False
        log IsTrading(self.isTrading)
    elif self.pauseCounter == 1:
        self.isTrading = True
        log IsTrading(self.isTrading)
    else:
        raise "Can only pause once"

@external
def setSwapThreshold(_value: uint256):
    """
    @dev Owner only function to set swap threshold for tax sells
         Tax amount must be less than 2% of total supply
    @param _value is an int less than ten. This is a percentage
            based on 1000 points  
    """
    self._checkOwner()
    assert _value < 20
    self.swapThreshold = self.totalSupply * _value / 1000 
    log SetSwapThreshold(self.swapThreshold)      

@external
def setTaxes(_buyTaxValue: uint8, _sellTaxValue: uint8):
    """
    @dev Owner only function to set tax amounts
        cannot exceed 25
    @param _buyTaxValue set buy tax
    @param _sellTaxValue set sell tax
    """
    self._checkOwner()
    assert _sellTaxValue + _buyTaxValue <= MAX_TAX, "More than 25% round trip is gross"
    self.buyTax = _buyTaxValue
    self.sellTax = _sellTaxValue
    log SetTaxes(_buyTaxValue, _sellTaxValue)
    
@external
def setOpWallet(_newWallet: address) -> bool:
    """
    @dev Owner only function to set new developer wallet
    @param _newWallet new wallet to send tax to
    """
    self._checkOwner()
    self.operationsWallet = _newWallet
    return True

@external
def transferOwnership(_newOwner: address) -> bool:
    """
    @dev Transfer ownership
    """
    self._checkOwner()
    assert _newOwner != empty(address)
    assert _newOwner != self.owner
    self.owner = _newOwner
    log TransferOwnership(_newOwner)
    return True

@external
def setRouter(_address: address) -> bool:
    """
    @dev Set router in case of uniswap upgrade
    @param _address Router address 
    """
    self._checkOwner()
    assert _address != self.routerAddress
    self.routerAddress = _address
    log SetRouter(_address)
    return True

@external
@payable
@nonreentrant("lock")
def manualSend() -> bool:
    """
    @dev Owner only function to send collected eth from contract to dev wallet
    """
    self._checkOwner()
    send(self.operationsWallet, self.balance)
    return True

@external
def removeLimits() -> bool:
    """
    @dev Owner only function to remove hard coded txn limits
    """
    self._checkOwner()
    self.txLimit = max_value(uint256)
    log RemoveLimits( self.txLimit, self.walletCap)
    return True

Contract Security Audit

Contract ABI

[{"name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true},{"name":"spender","type":"address","indexed":true},{"name":"value","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Transfer","inputs":[{"name":"sender","type":"address","indexed":true},{"name":"receiver","type":"address","indexed":true},{"name":"value","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetRouter","inputs":[{"name":"newRouter","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"name":"TransferOwnership","inputs":[{"name":"newOwner","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"name":"SetSwapThreshold","inputs":[{"name":"value","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"RemoveLimits","inputs":[{"name":"maxTx","type":"uint256","indexed":false},{"name":"maxWallet","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetTaxes","inputs":[{"name":"buyTax","type":"uint8","indexed":false},{"name":"sellTax","type":"uint8","indexed":false}],"anonymous":false,"type":"event"},{"name":"IsTrading","inputs":[{"name":"hasPaused","type":"bool","indexed":false}],"anonymous":false,"type":"event"},{"name":"StartTrading","inputs":[{"name":"startBlock","type":"uint256","indexed":false},{"name":"canTrade","type":"bool","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint8"},{"name":"_total_supply","type":"uint256"}],"outputs":[]},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"nonpayable","type":"function","name":"approve","inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"transfer","inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"transferFrom","inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"canTrade","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"pauseTrading","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setSwapThreshold","inputs":[{"name":"_value","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setTaxes","inputs":[{"name":"_buyTaxValue","type":"uint8"},{"name":"_sellTaxValue","type":"uint8"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setOpWallet","inputs":[{"name":"_newWallet","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"transferOwnership","inputs":[{"name":"_newOwner","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"setRouter","inputs":[{"name":"_address","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"payable","type":"function","name":"manualSend","inputs":[],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"removeLimits","inputs":[],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"view","type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"view","type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8"}]},{"stateMutability":"view","type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"balanceOf","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"allowance","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"buyTax","inputs":[],"outputs":[{"name":"","type":"uint8"}]},{"stateMutability":"view","type":"function","name":"sellTax","inputs":[],"outputs":[{"name":"","type":"uint8"}]},{"stateMutability":"view","type":"function","name":"isTrading","inputs":[],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"operationsWallet","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"launchedAt","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"swapThreshold","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"txLimit","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"walletCap","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"routerAddress","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"tradingPair","inputs":[],"outputs":[{"name":"","type":"address"}]}]

60206112bb60003960005160406020826112bb01600039600051116112b6576020816112bb01600039600051806040526020820181816112bb0160603950505060206112db60003960005160206020826112bb01600039600051116112b6576020816112bb016000396000518060a052602082016020816112bb0160003960005160c05250505060206112fb6000396000518060081c6112b65760e052346112b657602061131b60003960005160e051604d81116112b65780600a0a90508082028115838383041417156112b657905090506101005260405180600155600081601f0160051c600281116112b657801561010d57905b8060051b6060015181600201556001018181186100f5575b50505060a0518060045560c0516005555060e051600655610100516008336020526000526040600020556101005160075533600d556007548060011b818160011c186112b65790506064810490506011556007548060011b818160011c186112b6579050606481049050601255735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f611074526110745163c9c6539661012052306101405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2610160526020610120604461013c6000855af16101dc573d600060003e3d6000fd5b60203d106112b657610120518060a01c6112b657610180526101809050516014553360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61010051610120526020610120a361107461024161000039611094610000f36003361161000c57610997565b60003560e01c63f4293890811861006557600436106110625760005460021461106257600260005561003e60a0610999565b60a050600060006000600047600e546000f11561106257600160a052602060a06003600055f35b63095ea7b381186100ae5760443610611062576004358060a01c6110625760c05234611062573360405260c0516060526024356080526100a3610a2b565b600160e052602060e0f35b63a9059cbb81186100fb5760443610611062576004358060a01c611062576103205234611062576020336102a052610320516102c0526024356102e0526100f6610340610eed565b610340f35b6323b872dd811861015a5760643610611062576004358060a01c61106257610320526024358060a01c611062576103405234611062576020610320516102a052610340516102c0526044356102e052610155610360610eed565b610360f35b632f05205c81186101bc576004361061106257346110625761017c60a0610999565b60a05042600f556001600c557fb52540adbfb8186c38ed66467a7910f0a757dabf3f470b7e8c2ddab13a5d04da600f5460a052600c5460c052604060a0a1005b631031e36e81186102d557600436106110625734611062576101de60a0610999565b60a0506000601754131561028d5760016017541861022c576001600c557ff0a45f46672a53f8c6126d9d982f3ab411ee0a5cf5a11b9b5f8ab552629aeec2600c5460a052602060a0a16102d3565b601360a0527f43616e206f6e6c79207061757365206f6e63650000000000000000000000000060c05260a05060a0518060c001601f826000031636823750506308c379a06060526020608052601f19601f60a0510116604401607cfd6102d3565b601754600181018060081c6110625790506017556000600c557ff0a45f46672a53f8c6126d9d982f3ab411ee0a5cf5a11b9b5f8ab552629aeec2600c5460a052602060a0a15b005b639d0014b1811861035657602436106110625734611062576102f760a0610999565b60a0506013600435116110625760075460043580820281158383830414171561106257905090506103e8810490506010557fdd535c8a292f211fa216a760a7e5e8a29a1f222e36267d33660451d7719907a660105460a052602060a0a1005b631277e70981186104795760443610611062576004358060081c6110625760a0526024358060081c6110625760c052346110625761039460e0610999565b60e050601960c05160a0518082018060081c6110625790509050131561043857602160e0527f4d6f7265207468616e2032352520726f756e6420747269702069732067726f73610100527f73000000000000000000000000000000000000000000000000000000000000006101205260e05060e0518061010001601f826000031636823750506308c379a060a052602060c052601f19601f60e051011660440160bcfd5b60a051600a5560c051600b557f80ec1935d910e97db06b09256e959d0d9ad62dbfb384cfbc2354e6d364465b4160a05160e05260c05161010052604060e0a1005b63156f616e81186104bd5760243610611062576004358060a01c6110625760a05234611062576104a960c0610999565b60c05060a051600e55600160c052602060c0f35b63f2fde38b811861053d5760243610611062576004358060a01c6110625760a05234611062576104ed60c0610999565b60c05060a0511561106257600d5460a051146110625760a051600d5560a0517fcfaaa26691e16e66e73290fc725eee1a6b4e0e693a1640484937aac25ffb55a4600060c0a2600160c052602060c0f35b63c0d7865581186105b55760243610611062576004358060a01c6110625760a052346110625761056d60c0610999565b60c05060135460a051146110625760a05160135560a0517f6de4326a8b9054d72d9dbab97d27bc4edffadee7d966f5af9cc4eafdaf8e5455600060c0a2600160c052602060c0f35b63751039fc811861063b57600436106110625734611062576105d760a0610999565b60a0507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6011557feb6efa0d0db21af6bb330a3d4f8b44edee0ae57ebaa2c095fab6838bcd452c2760115460a05260125460c052604060a0a1600160a052602060a0f35b6306fdde0381186106c557600436106110625734611062576020806040528060400160015480825260208201600082601f0160051c6002811161106257801561069757905b80600201548160051b840152600101818118610680575b505050508051806020830101601f82600003163682375050601f19601f825160200101169050810190506040f35b6395d89b41811861072257600436106110625734611062576020806040528060400160045480825260208201600554815250508051806020830101601f82600003163682375050601f19601f825160200101169050810190506040f35b63313ce5678118610746576004361061106257346110625760065460405260206040f35b6318160ddd811861076a576004361061106257346110625760075460405260206040f35b6370a0823181186107aa5760243610611062576004358060a01c611062576040523461106257600860405160205260005260406000205460605260206060f35b63dd62ed3e81186108095760443610611062576004358060a01c611062576040526024358060a01c6110625760605234611062576009604051602052600052604060002080606051602052600052604060002090505460805260206080f35b634f7041a5811861082d5760043610611062573461106257600a5460405260206040f35b63cc1776d381186108515760043610611062573461106257600b5460405260206040f35b636e9087db81186108755760043610611062573461106257600c5460405260206040f35b638da5cb5b81186108995760043610611062573461106257600d5460405260206040f35b63fd72e22a81186108bd5760043610611062573461106257600e5460405260206040f35b63bf56b37181186108e15760043610611062573461106257600f5460405260206040f35b630445b6678118610905576004361061106257346110625760105460405260206040f35b636caae8328118610929576004361061106257346110625760115460405260206040f35b6358950c22811861094d576004361061106257346110625760125460405260206040f35b633268cc568118610971576004361061106257346110625760135460405260206040f35b63d42f6e398118610995576004361061106257346110625760145460405260206040f35b505b005b600d54331815610a245760276040527f61682061682061682c20796f75206469646e27742073617920746865206d61676060527f696320776f72640000000000000000000000000000000000000000000000000060805260405060405180606001601f826000031636823750506308c379a06000526020602052601f19601f6040510116604401601cfd5b6001815250565b60805160096040516020526000526040600020806060516020526000526040600020905055606051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560805160a052602060a0a3565b600960c05160205260005260406000208060e0516020526000526040600020905054610120526101005161012051106110625760c05160405260e05160605261012051610100518082038281116110625790509050608052610ae2610a2b565b565b61018051600b5480820281158383830414171561106257905090506064810490506101a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60096101405160205260005260406000208033602052600052604060002090505414610b6b576101405160c0523360e0526101805161010052610b6b610a82565b60086101405160205260005260406000208054610180518082038281116110625790509050815550600830602052600052604060002080546101a051808201828110611062579050905081555060086101605160205260005260406000208054610180516101a05180820382811161106257905090508082018281106110625790509050815550600060165530610140517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101a0516101c05260206101c0a361016051610140517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610180516101c05260206101c0a3565b608051600a54808202811583838304141715611062579050905060648104905060a05260086040516020526000526040600020805460805180820382811161106257905090508155506008306020526000526040600020805460a051808201828110611062579050905081555060086060516020526000526040600020805460805160a05180820382811161106257905090508082018281106110625790509050815550306040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60a05160c052602060c0a36060516040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60805160c052602060c0a3565b600860405160205260005260406000208054608051808203828111611062579050905081555060086060516020526000526040600020805460805180820182811061106257905090508155506060516040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60805160a052602060a0a3565b600160165530604052601354606052601054608052610e09610a2b565b60135460c05260c05163791ac94760e05260a060105461010052600061012052806101405280610100016000600261022052306102405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2610260526000610220518084528060051b60008260038111611062578015610e9757905b8060051b61024001518160051b602089010152600101818118610e79575b505082016020019150509050905081019050306101605242600481018181106110625790506101805250803b1561106257600060e061012460fc6000855af1610ee5573d600060003e3d6000fd5b506001815250565b6102a05115611062576102c0511561106257600d546102a05118610f12576001610f1c565b600d546102c05118155b61103e57306102a05118610f38576014546102c0511815610f3b565b60005b61101d576001600c5418611062576102e05115610f60576011546102e0511115610f63565b60005b15611062576014546102c05118610fd057601654610f94576010546008306020526000526040600020541015610f97565b60005b15610fac57610fa7610300610dec565b610300505b6102a051610140526102c051610160526102e0516101805261105b610ae45661105b565b60125460086102c0516020526000526040600020546102e051808201828110611062579050905011611062576102a0516040526102c0516060526102e05160805261105b610c645661105b565b6102a0516040526102c0516060526102e05160805261105b610d6c5661105b565b6102a0516040526102c0516060526102e05160805261105b610d6c565b6001815250565b600080fda165767970657283000307000b005b600080fd000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000a7d8c0000000000000000000000000000000000000000000000000000000000000000643686f6963650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000643484f4943450000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6003361161000c57610997565b60003560e01c63f4293890811861006557600436106110625760005460021461106257600260005561003e60a0610999565b60a050600060006000600047600e546000f11561106257600160a052602060a06003600055f35b63095ea7b381186100ae5760443610611062576004358060a01c6110625760c05234611062573360405260c0516060526024356080526100a3610a2b565b600160e052602060e0f35b63a9059cbb81186100fb5760443610611062576004358060a01c611062576103205234611062576020336102a052610320516102c0526024356102e0526100f6610340610eed565b610340f35b6323b872dd811861015a5760643610611062576004358060a01c61106257610320526024358060a01c611062576103405234611062576020610320516102a052610340516102c0526044356102e052610155610360610eed565b610360f35b632f05205c81186101bc576004361061106257346110625761017c60a0610999565b60a05042600f556001600c557fb52540adbfb8186c38ed66467a7910f0a757dabf3f470b7e8c2ddab13a5d04da600f5460a052600c5460c052604060a0a1005b631031e36e81186102d557600436106110625734611062576101de60a0610999565b60a0506000601754131561028d5760016017541861022c576001600c557ff0a45f46672a53f8c6126d9d982f3ab411ee0a5cf5a11b9b5f8ab552629aeec2600c5460a052602060a0a16102d3565b601360a0527f43616e206f6e6c79207061757365206f6e63650000000000000000000000000060c05260a05060a0518060c001601f826000031636823750506308c379a06060526020608052601f19601f60a0510116604401607cfd6102d3565b601754600181018060081c6110625790506017556000600c557ff0a45f46672a53f8c6126d9d982f3ab411ee0a5cf5a11b9b5f8ab552629aeec2600c5460a052602060a0a15b005b639d0014b1811861035657602436106110625734611062576102f760a0610999565b60a0506013600435116110625760075460043580820281158383830414171561106257905090506103e8810490506010557fdd535c8a292f211fa216a760a7e5e8a29a1f222e36267d33660451d7719907a660105460a052602060a0a1005b631277e70981186104795760443610611062576004358060081c6110625760a0526024358060081c6110625760c052346110625761039460e0610999565b60e050601960c05160a0518082018060081c6110625790509050131561043857602160e0527f4d6f7265207468616e2032352520726f756e6420747269702069732067726f73610100527f73000000000000000000000000000000000000000000000000000000000000006101205260e05060e0518061010001601f826000031636823750506308c379a060a052602060c052601f19601f60e051011660440160bcfd5b60a051600a5560c051600b557f80ec1935d910e97db06b09256e959d0d9ad62dbfb384cfbc2354e6d364465b4160a05160e05260c05161010052604060e0a1005b63156f616e81186104bd5760243610611062576004358060a01c6110625760a05234611062576104a960c0610999565b60c05060a051600e55600160c052602060c0f35b63f2fde38b811861053d5760243610611062576004358060a01c6110625760a05234611062576104ed60c0610999565b60c05060a0511561106257600d5460a051146110625760a051600d5560a0517fcfaaa26691e16e66e73290fc725eee1a6b4e0e693a1640484937aac25ffb55a4600060c0a2600160c052602060c0f35b63c0d7865581186105b55760243610611062576004358060a01c6110625760a052346110625761056d60c0610999565b60c05060135460a051146110625760a05160135560a0517f6de4326a8b9054d72d9dbab97d27bc4edffadee7d966f5af9cc4eafdaf8e5455600060c0a2600160c052602060c0f35b63751039fc811861063b57600436106110625734611062576105d760a0610999565b60a0507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6011557feb6efa0d0db21af6bb330a3d4f8b44edee0ae57ebaa2c095fab6838bcd452c2760115460a05260125460c052604060a0a1600160a052602060a0f35b6306fdde0381186106c557600436106110625734611062576020806040528060400160015480825260208201600082601f0160051c6002811161106257801561069757905b80600201548160051b840152600101818118610680575b505050508051806020830101601f82600003163682375050601f19601f825160200101169050810190506040f35b6395d89b41811861072257600436106110625734611062576020806040528060400160045480825260208201600554815250508051806020830101601f82600003163682375050601f19601f825160200101169050810190506040f35b63313ce5678118610746576004361061106257346110625760065460405260206040f35b6318160ddd811861076a576004361061106257346110625760075460405260206040f35b6370a0823181186107aa5760243610611062576004358060a01c611062576040523461106257600860405160205260005260406000205460605260206060f35b63dd62ed3e81186108095760443610611062576004358060a01c611062576040526024358060a01c6110625760605234611062576009604051602052600052604060002080606051602052600052604060002090505460805260206080f35b634f7041a5811861082d5760043610611062573461106257600a5460405260206040f35b63cc1776d381186108515760043610611062573461106257600b5460405260206040f35b636e9087db81186108755760043610611062573461106257600c5460405260206040f35b638da5cb5b81186108995760043610611062573461106257600d5460405260206040f35b63fd72e22a81186108bd5760043610611062573461106257600e5460405260206040f35b63bf56b37181186108e15760043610611062573461106257600f5460405260206040f35b630445b6678118610905576004361061106257346110625760105460405260206040f35b636caae8328118610929576004361061106257346110625760115460405260206040f35b6358950c22811861094d576004361061106257346110625760125460405260206040f35b633268cc568118610971576004361061106257346110625760135460405260206040f35b63d42f6e398118610995576004361061106257346110625760145460405260206040f35b505b005b600d54331815610a245760276040527f61682061682061682c20796f75206469646e27742073617920746865206d61676060527f696320776f72640000000000000000000000000000000000000000000000000060805260405060405180606001601f826000031636823750506308c379a06000526020602052601f19601f6040510116604401601cfd5b6001815250565b60805160096040516020526000526040600020806060516020526000526040600020905055606051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560805160a052602060a0a3565b600960c05160205260005260406000208060e0516020526000526040600020905054610120526101005161012051106110625760c05160405260e05160605261012051610100518082038281116110625790509050608052610ae2610a2b565b565b61018051600b5480820281158383830414171561106257905090506064810490506101a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60096101405160205260005260406000208033602052600052604060002090505414610b6b576101405160c0523360e0526101805161010052610b6b610a82565b60086101405160205260005260406000208054610180518082038281116110625790509050815550600830602052600052604060002080546101a051808201828110611062579050905081555060086101605160205260005260406000208054610180516101a05180820382811161106257905090508082018281106110625790509050815550600060165530610140517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101a0516101c05260206101c0a361016051610140517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610180516101c05260206101c0a3565b608051600a54808202811583838304141715611062579050905060648104905060a05260086040516020526000526040600020805460805180820382811161106257905090508155506008306020526000526040600020805460a051808201828110611062579050905081555060086060516020526000526040600020805460805160a05180820382811161106257905090508082018281106110625790509050815550306040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60a05160c052602060c0a36060516040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60805160c052602060c0a3565b600860405160205260005260406000208054608051808203828111611062579050905081555060086060516020526000526040600020805460805180820182811061106257905090508155506060516040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60805160a052602060a0a3565b600160165530604052601354606052601054608052610e09610a2b565b60135460c05260c05163791ac94760e05260a060105461010052600061012052806101405280610100016000600261022052306102405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2610260526000610220518084528060051b60008260038111611062578015610e9757905b8060051b61024001518160051b602089010152600101818118610e79575b505082016020019150509050905081019050306101605242600481018181106110625790506101805250803b1561106257600060e061012460fc6000855af1610ee5573d600060003e3d6000fd5b506001815250565b6102a05115611062576102c0511561106257600d546102a05118610f12576001610f1c565b600d546102c05118155b61103e57306102a05118610f38576014546102c0511815610f3b565b60005b61101d576001600c5418611062576102e05115610f60576011546102e0511115610f63565b60005b15611062576014546102c05118610fd057601654610f94576010546008306020526000526040600020541015610f97565b60005b15610fac57610fa7610300610dec565b610300505b6102a051610140526102c051610160526102e0516101805261105b610ae45661105b565b60125460086102c0516020526000526040600020546102e051808201828110611062579050905011611062576102a0516040526102c0516060526102e05160805261105b610c645661105b565b6102a0516040526102c0516060526102e05160805261105b610d6c5661105b565b6102a0516040526102c0516060526102e05160805261105b610d6c565b6001815250565b600080fda165767970657283000307000b0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000a7d8c0000000000000000000000000000000000000000000000000000000000000000643686f6963650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000643484f4943450000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Choice
Arg [1] : _symbol (string): CHOICE
Arg [2] : _decimals (uint8): 6
Arg [3] : _total_supply (uint256): 11000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [3] : 0000000000000000000000000000000000000000000000000000000000a7d8c0
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [5] : 43686f6963650000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [7] : 43484f4943450000000000000000000000000000000000000000000000000000


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.