ETH Price: $3,666.25 (+0.72%)

Token

ERC-20: Vote-Escrowed Boost (veBoost)
 

Overview

Max Total Supply

810,761,491.01212709540928755 veBoost

Holders

16

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
199,957.6625383168360661 veBoost

Value
$0.00
0xb325c1ac788f02ff7997cf53c6ff40dd762897b3
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x78EDd3Fc...79E80dC19
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Boost Delegation V3

Compiler Version
vyper:0.3.10

Optimization Enabled:
N/A

Other Settings:
MIT license

Contract Source Code (Vyper language format)

# @version 0.3.10
"""
@title Boost Delegation V3
@author CurveFi
"""

event Approval:
    _owner: indexed(address)
    _spender: indexed(address)
    _value: uint256

event Transfer:
    _from: indexed(address)
    _to: indexed(address)
    _value: uint256

event Boost:
    _from: indexed(address)
    _to: indexed(address)
    _bias: uint256
    _slope: uint256
    _start: uint256

interface VotingEscrow:
    def balanceOf(_user: address) -> uint256: view
    def totalSupply() -> uint256: view
    def locked__end(_user: address) -> uint256: view


struct Point:
    bias: uint256
    slope: uint256
    ts: uint256


NAME: constant(String[32]) = "Vote-Escrowed Boost"
SYMBOL: constant(String[8]) = "veBoost"
VERSION: constant(String[8]) = "v3.0.0"

EIP712_TYPEHASH: constant(bytes32) = keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract,bytes32 salt)")
PERMIT_TYPEHASH: constant(bytes32) = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)")

WEEK: constant(uint256) = 86400 * 7


DOMAIN_SEPARATOR: immutable(bytes32)
VE: immutable(address)


allowance: public(HashMap[address, HashMap[address, uint256]])
nonces: public(HashMap[address, uint256])

delegated: public(HashMap[address, Point])
delegated_slope_changes: public(HashMap[address, HashMap[uint256, uint256]])

received: public(HashMap[address, Point])
received_slope_changes: public(HashMap[address, HashMap[uint256, uint256]])

@external
def __init__(_ve: address):
    DOMAIN_SEPARATOR = keccak256(_abi_encode(EIP712_TYPEHASH, keccak256(NAME), keccak256(VERSION), chain.id, self, block.prevhash))
    VE = _ve

    log Transfer(ZERO_ADDRESS, msg.sender, 0)


@view
@internal
def _checkpoint_read(_user: address, _delegated: bool) -> Point:
    point: Point = empty(Point)

    if _delegated:
        point = self.delegated[_user]
    else:
        point = self.received[_user]

    if point.ts == 0:
        point.ts = block.timestamp

    if point.ts == block.timestamp:
        return point

    ts: uint256 = (point.ts / WEEK) * WEEK
    for _ in range(255):
        ts += WEEK

        dslope: uint256 = 0
        if block.timestamp < ts:
            ts = block.timestamp
        else:
            if _delegated:
                dslope = self.delegated_slope_changes[_user][ts]
            else:
                dslope = self.received_slope_changes[_user][ts]

        point.bias -= point.slope * (ts - point.ts)
        point.slope -= dslope
        point.ts = ts

        if ts == block.timestamp:
            break

    return point


@internal
def _checkpoint_write(_user: address, _delegated: bool) -> Point:
    point: Point = empty(Point)

    if _delegated:
        point = self.delegated[_user]
    else:
        point = self.received[_user]

    if point.ts == 0:
        point.ts = block.timestamp

    if point.ts == block.timestamp:
        return point

    dbias: uint256 = 0
    ts: uint256 = (point.ts / WEEK) * WEEK
    for _ in range(255):
        ts += WEEK

        dslope: uint256 = 0
        if block.timestamp < ts:
            ts = block.timestamp
        else:
            if _delegated:
                dslope = self.delegated_slope_changes[_user][ts]
            else:
                dslope = self.received_slope_changes[_user][ts]

        amount: uint256 = point.slope * (ts - point.ts)

        dbias += amount
        point.bias -= amount
        point.slope -= dslope
        point.ts = ts

        if ts == block.timestamp:
            break

    if _delegated == False and dbias != 0:  # received boost
        log Transfer(_user, ZERO_ADDRESS, dbias)

    return point


@view
@internal
def _balance_of(_user: address) -> uint256:
    amount: uint256 = VotingEscrow(VE).balanceOf(_user)

    point: Point = self._checkpoint_read(_user, True)
    amount -= (point.bias - point.slope * (block.timestamp - point.ts))

    point = self._checkpoint_read(_user, False)
    amount += (point.bias - point.slope * (block.timestamp - point.ts))
    return amount


@internal
def _boost(_from: address, _to: address, _amount: uint256, _endtime: uint256):
    assert _to not in [_from, ZERO_ADDRESS]
    assert _amount != 0
    assert _endtime > block.timestamp
    assert _endtime % WEEK == 0
    assert _endtime <= VotingEscrow(VE).locked__end(_from)

    # checkpoint delegated point
    point: Point = self._checkpoint_write(_from, True)
    assert _amount <= VotingEscrow(VE).balanceOf(_from) - (point.bias - point.slope * (block.timestamp - point.ts))

    # calculate slope and bias being added
    slope: uint256 = _amount / (_endtime - block.timestamp)
    bias: uint256 = slope * (_endtime - block.timestamp)

    # update delegated point
    point.bias += bias
    point.slope += slope

    # store updated values
    self.delegated[_from] = point
    self.delegated_slope_changes[_from][_endtime] += slope

    # update received amount
    point = self._checkpoint_write(_to, False)
    point.bias += bias
    point.slope += slope

    # store updated values
    self.received[_to] = point
    self.received_slope_changes[_to][_endtime] += slope

    log Transfer(_from, _to, _amount)
    log Boost(_from, _to, bias, slope, block.timestamp)

    # also checkpoint received and delegated
    self.received[_from] = self._checkpoint_write(_from, False)
    self.delegated[_to] = self._checkpoint_write(_to, True)


@external
def boost(_to: address, _amount: uint256, _endtime: uint256, _from: address = msg.sender):
    # reduce approval if necessary
    if _from != msg.sender:
        allowance: uint256 = self.allowance[_from][msg.sender]
        if allowance != MAX_UINT256:
            self.allowance[_from][msg.sender] = allowance - _amount
            log Approval(_from, msg.sender, allowance - _amount)

    self._boost(_from, _to, _amount, _endtime)


@external
def checkpoint_user(_user: address):
    self.delegated[_user] = self._checkpoint_write(_user, True)
    self.received[_user] = self._checkpoint_write(_user, False)


@external
def approve(_spender: address, _value: uint256) -> bool:
    self.allowance[msg.sender][_spender] = _value

    log Approval(msg.sender, _spender, _value)
    return True


@external
def permit(_owner: address, _spender: address, _value: uint256, _deadline: uint256, _v: uint8, _r: bytes32, _s: bytes32) -> bool:
    assert _owner != ZERO_ADDRESS
    assert block.timestamp <= _deadline

    nonce: uint256 = self.nonces[_owner]
    digest: bytes32 = keccak256(
        concat(
            b"\x19\x01",
            DOMAIN_SEPARATOR,
            keccak256(_abi_encode(PERMIT_TYPEHASH, _owner, _spender, _value, nonce, _deadline))
        )
    )

    assert ecrecover(digest, convert(_v, uint256), convert(_r, uint256), convert(_s, uint256)) == _owner

    self.allowance[_owner][_spender] = _value
    self.nonces[_owner] = nonce + 1

    log Approval(_owner, _spender, _value)
    return True


@external
def increaseAllowance(_spender: address, _added_value: uint256) -> bool:
    allowance: uint256 = self.allowance[msg.sender][_spender] + _added_value
    self.allowance[msg.sender][_spender] = allowance

    log Approval(msg.sender, _spender, allowance)
    return True


@external
def decreaseAllowance(_spender: address, _subtracted_value: uint256) -> bool:
    allowance: uint256 = self.allowance[msg.sender][_spender] - _subtracted_value
    self.allowance[msg.sender][_spender] = allowance

    log Approval(msg.sender, _spender, allowance)
    return True


@view
@external
def balanceOf(_user: address) -> uint256:
    return self._balance_of(_user)


@view
@external
def adjusted_balance_of(_user: address) -> uint256:
    return self._balance_of(_user)


@external
def adjusted_balance_of_write(_user: address) -> uint256:
    amount: uint256 = VotingEscrow(VE).balanceOf(_user)

    point: Point = self._checkpoint_write(_user, True)
    self.delegated[_user] = point
    amount -= (point.bias - point.slope * (block.timestamp - point.ts))

    point = self._checkpoint_write(_user, False)
    self.received[_user] = point
    amount += (point.bias - point.slope * (block.timestamp - point.ts))

    return amount

@view
@external
def totalSupply() -> uint256:
    return VotingEscrow(VE).totalSupply()


@view
@external
def delegated_balance(_user: address) -> uint256:
    point: Point = self._checkpoint_read(_user, True)
    return point.bias - point.slope * (block.timestamp - point.ts)


@view
@external
def received_balance(_user: address) -> uint256:
    point: Point = self._checkpoint_read(_user, False)
    return point.bias - point.slope * (block.timestamp - point.ts)


@view
@external
def delegable_balance(_user: address) -> uint256:
    point: Point = self._checkpoint_read(_user, True)
    return VotingEscrow(VE).balanceOf(_user) - (point.bias - point.slope * (block.timestamp - point.ts))


@pure
@external
def name() -> String[32]:
    return NAME


@pure
@external
def symbol() -> String[8]:
    return SYMBOL


@pure
@external
def decimals() -> uint8:
    return 18


@pure
@external
def DOMAIN_SEPARATOR() -> bytes32:
    return DOMAIN_SEPARATOR


@pure
@external
def VE() -> address:
    return VE

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":"_from","type":"address","indexed":true},{"name":"_to","type":"address","indexed":true},{"name":"_value","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Boost","inputs":[{"name":"_from","type":"address","indexed":true},{"name":"_to","type":"address","indexed":true},{"name":"_bias","type":"uint256","indexed":false},{"name":"_slope","type":"uint256","indexed":false},{"name":"_start","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_ve","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"boost","inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_endtime","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"boost","inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_endtime","type":"uint256"},{"name":"_from","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"checkpoint_user","inputs":[{"name":"_user","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"approve","inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"permit","inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_deadline","type":"uint256"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","inputs":[{"name":"_spender","type":"address"},{"name":"_added_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","inputs":[{"name":"_spender","type":"address"},{"name":"_subtracted_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"balanceOf","inputs":[{"name":"_user","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"adjusted_balance_of","inputs":[{"name":"_user","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"adjusted_balance_of_write","inputs":[{"name":"_user","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"delegated_balance","inputs":[{"name":"_user","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"received_balance","inputs":[{"name":"_user","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"delegable_balance","inputs":[{"name":"_user","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"pure","type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"pure","type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"pure","type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8"}]},{"stateMutability":"pure","type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32"}]},{"stateMutability":"pure","type":"function","name":"VE","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"allowance","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"nonces","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"delegated","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"tuple","components":[{"name":"bias","type":"uint256"},{"name":"slope","type":"uint256"},{"name":"ts","type":"uint256"}]}]},{"stateMutability":"view","type":"function","name":"delegated_slope_changes","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"received","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"tuple","components":[{"name":"bias","type":"uint256"},{"name":"slope","type":"uint256"},{"name":"ts","type":"uint256"}]}]},{"stateMutability":"view","type":"function","name":"received_slope_changes","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]}]

6117dc5150346100f45760206118ca5f395f518060a01c6100f4576040527fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac564726080527f576a762e50ddf4c74071046cf7b508f5d87c41676ea1b6c8bf07aba60e5b630660a0527f68f731a9803f5c5f15be5330fe99b1ad2675b9961a3ce3fd24252ceec90e654560c0524660e052306101005260014303406101205260c060605260608051602082012090506117bc526040516117dc52335f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f60605260206060a36117bc6100f8610000396117fc610000f35b5f80fd5f3560e01c60026015820660011b61179201601e395f51565b63dd62ed3e811861006f5760443610341761178e576004358060a01c61178e576040526024358060a01c61178e576060525f6040516020525f5260405f20806060516020525f5260405f2090505460805260206080f35b63a457c2d7811861011a5760443610341761178e576004358060a01c61178e576040525f336020525f5260405f20806040516020525f5260405f2090505460243580820382811161178e57905090506060526060515f336020525f5260405f20806040516020525f5260405f20905055604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560605160805260206080a3600160805260206080f35b6395d89b418118610dfa573461178e5760208060805260076040527f7665426f6f73740000000000000000000000000000000000000000000000000060605260408160800181518152602082015160208201528051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f3610dfa565b637ecebe0081146003361116156101dd5760243610341761178e576004358060a01c61178e5760405260016040516020525f5260405f205460605260206060f35b63c863657d8118610dfa573461178e5760206117dc60403960206040f3610dfa565b63f3598ad9811861024c5760243610341761178e576004358060a01c61178e5760405260026040516020525f5260405f2080546060526001810154608052600281015460a0525060606060f35b633644e5158118610dfa573461178e5760206117bc60403960206040f3610dfa565b63356a46808118610dfa5760443610341761178e576004358060a01c61178e5760405260036040516020525f5260405f20806024356020525f5260405f2090505460605260206060f3610dfa565b63df0cb93481186103095760243610341761178e576004358060a01c61178e5760405260046040516020525f5260405f2080546060526001810154608052600281015460a0525060606060f35b63ca83094681186103f75760243610341761178e576004358060a01c61178e57610140526101405160405260016060526103446101c0610dfe565b6101c080516101605260208101516101805260408101516101a0525060206117dc5f395f516370a082316101c052610140516101e05260206101c060246101dc845afa610393573d5f5f3e3d5ffd5b60203d1061178e576101c09050516101605161018051426101a05180820382811161178e579050905080820281158383830414171561178e579050905080820382811161178e579050905080820382811161178e5790509050610200526020610200f35b6306fdde038118610dfa573461178e5760208060805260136040527f566f74652d457363726f77656420426f6f73740000000000000000000000000060605260408160800181518152602082015160208201528051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f3610dfa565b635ad600c981186104c35760443610341761178e576004358060a01c61178e5760405260056040516020525f5260405f20806024356020525f5260405f2090505460605260206060f35b6318160ddd8118610dfa573461178e57602060206117dc5f395f516318160ddd604052602060406004605c845afa6104fd573d5f5f3e3d5ffd5b60203d1061178e5760409050f3610dfa565b63a2114cdb811861052e5760643610341761178e57336103805261075c565b63d505accf81186107185760e43610341761178e576004358060a01c61178e576040526024358060a01c61178e576060526084358060081c61178e576080526040511561178e57606435421161178e5760016040516020525f5260405f205460a0525f600260e0527f19010000000000000000000000000000000000000000000000000000000000006101005260e080516020820183610220018151815250508083019250505060206117bc8261022001396020810190507f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c96101405260405161016052606051610180526044356101a05260a0516101c0526064356101e05260c0610120526101208051602082012090508161022001526020810190508061020052610200905080516020820120905060c0526040515f6101605260c05160e0526080516101005260a4356101205260c435610140526020610160608060e060015afa50610160511861178e576044355f6040516020525f5260405f20806060516020525f5260405f2090505560a0516001810181811061178e57905060016040516020525f5260405f20556060516040517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560443560e052602060e0a3600160e052602060e0f35b63313ce5678118610dfa573461178e57601260405260206040f3610dfa565b63b4b3c24981186108585760843610341761178e576064358060a01c61178e57610380525b6004358060a01c61178e5761036052336103805114610836575f610380516020525f5260405f2080336020525f5260405f209050546103a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6103a05114610836576103a05160243580820382811161178e57905090505f610380516020525f5260405f2080336020525f5260405f2090505533610380517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256103a05160243580820382811161178e57905090506103c05260206103c0a35b6103805161018052610360516101a052604060246101c03761085661135a565b005b63095ea7b38118610dfa5760443610341761178e576004358060a01c61178e576040526024355f336020525f5260405f20806040516020525f5260405f20905055604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560243560605260206060a3600160605260206060f3610dfa565b637de680618118610dfa5760243610341761178e576004358060a01c61178e57610180526101805160405260016060526109136101a0610fc3565b6101a0805161020052602081015161022052604081015161024052506002610180516020525f5260405f2061020051815561022051600182015561024051600282015550610180516040525f60605261096d6101a0610fc3565b6101a0805161020052602081015161022052604081015161024052506004610180516020525f5260405f206102005181556102205160018201556102405160028201555000610dfa565b63395093518118610dfa5760443610341761178e576004358060a01c61178e576040525f336020525f5260405f20806040516020525f5260405f2090505460243580820182811061178e57905090506060526060515f336020525f5260405f20806040516020525f5260405f20905055604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560605160805260206080a3600160805260206080f3610dfa565b6370a082318118610dfa5760243610341761178e576004358060a01c61178e576102405260206102405161014052610a9f610260611201565b610260f3610dfa565b63bbf7408a8118610dfa5760243610341761178e576004358060a01c61178e576102405260206102405161014052610ae1610260611201565b610260f3610dfa565b63c10ef6558118610dfa5760243610341761178e576004358060a01c61178e576101805260206117dc5f395f516370a082316101c052610180516101e05260206101c060246101dc845afa610b41573d5f5f3e3d5ffd5b60203d1061178e576101c09050516101a052610180516040526001606052610b6a610220610fc3565b61022080516101c05260208101516101e052604081015161020052506002610180516020525f5260405f206101c05181556101e0516001820155610200516002820155506101a0516101c0516101e051426102005180820382811161178e579050905080820281158383830414171561178e579050905080820382811161178e579050905080820382811161178e57905090506101a052610180516040525f606052610c17610220610fc3565b61022080516101c05260208101516101e052604081015161020052506004610180516020525f5260405f206101c05181556101e0516001820155610200516002820155506101a0516101c0516101e051426102005180820382811161178e579050905080820281158383830414171561178e579050905080820382811161178e579050905080820182811061178e57905090506101a05260206101a0f3610dfa565b630a767cc68118610dfa5760243610341761178e576004358060a01c61178e5761014052610140516040526001606052610cf46101c0610dfe565b6101c080516101605260208101516101805260408101516101a052506101605161018051426101a05180820382811161178e579050905080820281158383830414171561178e579050905080820382811161178e57905090506101c05260206101c0f3610dfa565b6322c18bb68118610dfa5760243610341761178e576004358060a01c61178e5761014052610140516040525f606052610d966101c0610dfe565b6101c080516101605260208101516101805260408101516101a052506101605161018051426101a05180820382811161178e579050905080820281158383830414171561178e579050905080820382811161178e57905090506101c05260206101c0f35b5f5ffd5b606036608037606051610e345760046040516020525f5260405f208054608052600181015460a052600281015460c05250610e59565b60026040516020525f5260405f208054608052600181015460a052600281015460c052505b60c051610e65574260c0525b4260c05118610e8957608051815260a051602082015260c051604082015250610fc1565b60c05162093a808104905062093a8081028162093a8082041861178e57905060e0525f60ff905b806101005260e05162093a80810181811061178e57905060e0525f6101205260e0514210610f2d57606051610f065760056040516020525f5260405f208060e0516020525f5260405f2090505461012052610f32565b60036040516020525f5260405f208060e0516020525f5260405f2090505461012052610f32565b4260e0525b60805160a05160e05160c05180820382811161178e579050905080820281158383830414171561178e579050905080820382811161178e579050905060805260a0516101205180820382811161178e579050905060a05260e05160c0524260e05118610f9d57610fa8565b600101818118610eb0575b5050608051815260a051602082015260c0516040820152505b565b606036608037606051610ff95760046040516020525f5260405f208054608052600181015460a052600281015460c0525061101e565b60026040516020525f5260405f208054608052600181015460a052600281015460c052505b60c05161102a574260c0525b4260c0511861104e57608051815260a051602082015260c0516040820152506111ff565b5f60e05260c05162093a808104905062093a8081028162093a8082041861178e579050610100525f60ff905b80610120526101005162093a80810181811061178e579050610100525f610140526101005142106110fc576060516110d45760056040516020525f5260405f2080610100516020525f5260405f2090505461014052611102565b60036040516020525f5260405f2080610100516020525f5260405f2090505461014052611102565b42610100525b60a0516101005160c05180820382811161178e579050905080820281158383830414171561178e57905090506101605260e0516101605180820182811061178e579050905060e0526080516101605180820382811161178e579050905060805260a0516101405180820382811161178e579050905060a0526101005160c0524261010051186111905761119b565b60010181811861107a575b50506060516111ae5760e05115156111b0565b5f5b156111e8575f6040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60e051610120526020610120a35b608051815260a051602082015260c0516040820152505b565b60206117dc5f395f516370a0823161018052610140516101a0526020610180602461019c845afa611234573d5f5f3e3d5ffd5b60203d1061178e576101809050516101605261014051604052600160605261125d6101e0610dfe565b6101e080516101805260208101516101a05260408101516101c0525061016051610180516101a051426101c05180820382811161178e579050905080820281158383830414171561178e579050905080820382811161178e579050905080820382811161178e579050905061016052610140516040525f6060526112e26101e0610dfe565b6101e080516101805260208101516101a05260408101516101c0525061016051610180516101a051426101c05180820382811161178e579050905080820281158383830414171561178e579050905080820382811161178e579050905080820182811061178e57905090506101605261016051815250565b6101a05161018051811461137057801515611372565b5f5b90501561178e576101c0511561178e57426101e051111561178e576101e05162093a808106905061178e5760206117dc5f395f5163adc635896102005261018051610220526020610200602461021c845afa6113d0573d5f5f3e3d5ffd5b60203d1061178e576102009050516101e0511161178e576101805160405260016060526113fe610260610fc3565b6102608051610200526020810151610220526040810151610240525060206117dc5f395f516370a082316102605261018051610280526020610260602461027c845afa61144d573d5f5f3e3d5ffd5b60203d1061178e576102609050516102005161022051426102405180820382811161178e579050905080820281158383830414171561178e579050905080820382811161178e579050905080820382811161178e57905090506101c0511161178e576101c0516101e0514280820382811161178e5790509050801561178e578082049050905061026052610260516101e0514280820382811161178e579050905080820281158383830414171561178e579050905061028052610200516102805180820182811061178e579050905061020052610220516102605180820182811061178e5790509050610220526002610180516020525f5260405f20610200518155610220516001820155610240516002820155506003610180516020525f5260405f20806101e0516020525f5260405f20905080546102605180820182811061178e57905090508155506101a0516040525f6060526115ae6102a0610fc3565b6102a080516102005260208101516102205260408101516102405250610200516102805180820182811061178e579050905061020052610220516102605180820182811061178e57905090506102205260046101a0516020525f5260405f206102005181556102205160018201556102405160028201555060056101a0516020525f5260405f20806101e0516020525f5260405f20905080546102605180820182811061178e57905090508155506101a051610180517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101c0516102a05260206102a0a36101a051610180517f9c0aa947e19ab1e2400ff167e2cb40414b570fdaf31ab646a16749ca3c4301ad610280516102a052610260516102c052426102e05260606102a0a3610180516040525f6060526116ed6102a0610fc3565b6102a0805161030052602081015161032052604081015161034052506004610180516020525f5260405f20610300518155610320516001820155610340516002820155506101a05160405260016060526117486102a0610fc3565b6102a08051610300526020810151610320526040810151610340525060026101a0516020525f5260405f2061030051815561032051600182015561034051600282015550565b5f80fd01ff0dfa0dfa019c08d80dfa00180a6607370cb902bc09b7050f0dfa0dfa026e0aea0d5c0aa804790dfa841917bc81182a1840a16576797065728300030a00160000000000000000000000005f3b5dfeb7b28cdbd7faba78963ee202a494e2a2

Deployed Bytecode

0x5f3560e01c60026015820660011b61179201601e395f51565b63dd62ed3e811861006f5760443610341761178e576004358060a01c61178e576040526024358060a01c61178e576060525f6040516020525f5260405f20806060516020525f5260405f2090505460805260206080f35b63a457c2d7811861011a5760443610341761178e576004358060a01c61178e576040525f336020525f5260405f20806040516020525f5260405f2090505460243580820382811161178e57905090506060526060515f336020525f5260405f20806040516020525f5260405f20905055604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560605160805260206080a3600160805260206080f35b6395d89b418118610dfa573461178e5760208060805260076040527f7665426f6f73740000000000000000000000000000000000000000000000000060605260408160800181518152602082015160208201528051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f3610dfa565b637ecebe0081146003361116156101dd5760243610341761178e576004358060a01c61178e5760405260016040516020525f5260405f205460605260206060f35b63c863657d8118610dfa573461178e5760206117dc60403960206040f3610dfa565b63f3598ad9811861024c5760243610341761178e576004358060a01c61178e5760405260026040516020525f5260405f2080546060526001810154608052600281015460a0525060606060f35b633644e5158118610dfa573461178e5760206117bc60403960206040f3610dfa565b63356a46808118610dfa5760443610341761178e576004358060a01c61178e5760405260036040516020525f5260405f20806024356020525f5260405f2090505460605260206060f3610dfa565b63df0cb93481186103095760243610341761178e576004358060a01c61178e5760405260046040516020525f5260405f2080546060526001810154608052600281015460a0525060606060f35b63ca83094681186103f75760243610341761178e576004358060a01c61178e57610140526101405160405260016060526103446101c0610dfe565b6101c080516101605260208101516101805260408101516101a0525060206117dc5f395f516370a082316101c052610140516101e05260206101c060246101dc845afa610393573d5f5f3e3d5ffd5b60203d1061178e576101c09050516101605161018051426101a05180820382811161178e579050905080820281158383830414171561178e579050905080820382811161178e579050905080820382811161178e5790509050610200526020610200f35b6306fdde038118610dfa573461178e5760208060805260136040527f566f74652d457363726f77656420426f6f73740000000000000000000000000060605260408160800181518152602082015160208201528051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f3610dfa565b635ad600c981186104c35760443610341761178e576004358060a01c61178e5760405260056040516020525f5260405f20806024356020525f5260405f2090505460605260206060f35b6318160ddd8118610dfa573461178e57602060206117dc5f395f516318160ddd604052602060406004605c845afa6104fd573d5f5f3e3d5ffd5b60203d1061178e5760409050f3610dfa565b63a2114cdb811861052e5760643610341761178e57336103805261075c565b63d505accf81186107185760e43610341761178e576004358060a01c61178e576040526024358060a01c61178e576060526084358060081c61178e576080526040511561178e57606435421161178e5760016040516020525f5260405f205460a0525f600260e0527f19010000000000000000000000000000000000000000000000000000000000006101005260e080516020820183610220018151815250508083019250505060206117bc8261022001396020810190507f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c96101405260405161016052606051610180526044356101a05260a0516101c0526064356101e05260c0610120526101208051602082012090508161022001526020810190508061020052610200905080516020820120905060c0526040515f6101605260c05160e0526080516101005260a4356101205260c435610140526020610160608060e060015afa50610160511861178e576044355f6040516020525f5260405f20806060516020525f5260405f2090505560a0516001810181811061178e57905060016040516020525f5260405f20556060516040517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560443560e052602060e0a3600160e052602060e0f35b63313ce5678118610dfa573461178e57601260405260206040f3610dfa565b63b4b3c24981186108585760843610341761178e576064358060a01c61178e57610380525b6004358060a01c61178e5761036052336103805114610836575f610380516020525f5260405f2080336020525f5260405f209050546103a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6103a05114610836576103a05160243580820382811161178e57905090505f610380516020525f5260405f2080336020525f5260405f2090505533610380517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256103a05160243580820382811161178e57905090506103c05260206103c0a35b6103805161018052610360516101a052604060246101c03761085661135a565b005b63095ea7b38118610dfa5760443610341761178e576004358060a01c61178e576040526024355f336020525f5260405f20806040516020525f5260405f20905055604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560243560605260206060a3600160605260206060f3610dfa565b637de680618118610dfa5760243610341761178e576004358060a01c61178e57610180526101805160405260016060526109136101a0610fc3565b6101a0805161020052602081015161022052604081015161024052506002610180516020525f5260405f2061020051815561022051600182015561024051600282015550610180516040525f60605261096d6101a0610fc3565b6101a0805161020052602081015161022052604081015161024052506004610180516020525f5260405f206102005181556102205160018201556102405160028201555000610dfa565b63395093518118610dfa5760443610341761178e576004358060a01c61178e576040525f336020525f5260405f20806040516020525f5260405f2090505460243580820182811061178e57905090506060526060515f336020525f5260405f20806040516020525f5260405f20905055604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560605160805260206080a3600160805260206080f3610dfa565b6370a082318118610dfa5760243610341761178e576004358060a01c61178e576102405260206102405161014052610a9f610260611201565b610260f3610dfa565b63bbf7408a8118610dfa5760243610341761178e576004358060a01c61178e576102405260206102405161014052610ae1610260611201565b610260f3610dfa565b63c10ef6558118610dfa5760243610341761178e576004358060a01c61178e576101805260206117dc5f395f516370a082316101c052610180516101e05260206101c060246101dc845afa610b41573d5f5f3e3d5ffd5b60203d1061178e576101c09050516101a052610180516040526001606052610b6a610220610fc3565b61022080516101c05260208101516101e052604081015161020052506002610180516020525f5260405f206101c05181556101e0516001820155610200516002820155506101a0516101c0516101e051426102005180820382811161178e579050905080820281158383830414171561178e579050905080820382811161178e579050905080820382811161178e57905090506101a052610180516040525f606052610c17610220610fc3565b61022080516101c05260208101516101e052604081015161020052506004610180516020525f5260405f206101c05181556101e0516001820155610200516002820155506101a0516101c0516101e051426102005180820382811161178e579050905080820281158383830414171561178e579050905080820382811161178e579050905080820182811061178e57905090506101a05260206101a0f3610dfa565b630a767cc68118610dfa5760243610341761178e576004358060a01c61178e5761014052610140516040526001606052610cf46101c0610dfe565b6101c080516101605260208101516101805260408101516101a052506101605161018051426101a05180820382811161178e579050905080820281158383830414171561178e579050905080820382811161178e57905090506101c05260206101c0f3610dfa565b6322c18bb68118610dfa5760243610341761178e576004358060a01c61178e5761014052610140516040525f606052610d966101c0610dfe565b6101c080516101605260208101516101805260408101516101a052506101605161018051426101a05180820382811161178e579050905080820281158383830414171561178e579050905080820382811161178e57905090506101c05260206101c0f35b5f5ffd5b606036608037606051610e345760046040516020525f5260405f208054608052600181015460a052600281015460c05250610e59565b60026040516020525f5260405f208054608052600181015460a052600281015460c052505b60c051610e65574260c0525b4260c05118610e8957608051815260a051602082015260c051604082015250610fc1565b60c05162093a808104905062093a8081028162093a8082041861178e57905060e0525f60ff905b806101005260e05162093a80810181811061178e57905060e0525f6101205260e0514210610f2d57606051610f065760056040516020525f5260405f208060e0516020525f5260405f2090505461012052610f32565b60036040516020525f5260405f208060e0516020525f5260405f2090505461012052610f32565b4260e0525b60805160a05160e05160c05180820382811161178e579050905080820281158383830414171561178e579050905080820382811161178e579050905060805260a0516101205180820382811161178e579050905060a05260e05160c0524260e05118610f9d57610fa8565b600101818118610eb0575b5050608051815260a051602082015260c0516040820152505b565b606036608037606051610ff95760046040516020525f5260405f208054608052600181015460a052600281015460c0525061101e565b60026040516020525f5260405f208054608052600181015460a052600281015460c052505b60c05161102a574260c0525b4260c0511861104e57608051815260a051602082015260c0516040820152506111ff565b5f60e05260c05162093a808104905062093a8081028162093a8082041861178e579050610100525f60ff905b80610120526101005162093a80810181811061178e579050610100525f610140526101005142106110fc576060516110d45760056040516020525f5260405f2080610100516020525f5260405f2090505461014052611102565b60036040516020525f5260405f2080610100516020525f5260405f2090505461014052611102565b42610100525b60a0516101005160c05180820382811161178e579050905080820281158383830414171561178e57905090506101605260e0516101605180820182811061178e579050905060e0526080516101605180820382811161178e579050905060805260a0516101405180820382811161178e579050905060a0526101005160c0524261010051186111905761119b565b60010181811861107a575b50506060516111ae5760e05115156111b0565b5f5b156111e8575f6040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60e051610120526020610120a35b608051815260a051602082015260c0516040820152505b565b60206117dc5f395f516370a0823161018052610140516101a0526020610180602461019c845afa611234573d5f5f3e3d5ffd5b60203d1061178e576101809050516101605261014051604052600160605261125d6101e0610dfe565b6101e080516101805260208101516101a05260408101516101c0525061016051610180516101a051426101c05180820382811161178e579050905080820281158383830414171561178e579050905080820382811161178e579050905080820382811161178e579050905061016052610140516040525f6060526112e26101e0610dfe565b6101e080516101805260208101516101a05260408101516101c0525061016051610180516101a051426101c05180820382811161178e579050905080820281158383830414171561178e579050905080820382811161178e579050905080820182811061178e57905090506101605261016051815250565b6101a05161018051811461137057801515611372565b5f5b90501561178e576101c0511561178e57426101e051111561178e576101e05162093a808106905061178e5760206117dc5f395f5163adc635896102005261018051610220526020610200602461021c845afa6113d0573d5f5f3e3d5ffd5b60203d1061178e576102009050516101e0511161178e576101805160405260016060526113fe610260610fc3565b6102608051610200526020810151610220526040810151610240525060206117dc5f395f516370a082316102605261018051610280526020610260602461027c845afa61144d573d5f5f3e3d5ffd5b60203d1061178e576102609050516102005161022051426102405180820382811161178e579050905080820281158383830414171561178e579050905080820382811161178e579050905080820382811161178e57905090506101c0511161178e576101c0516101e0514280820382811161178e5790509050801561178e578082049050905061026052610260516101e0514280820382811161178e579050905080820281158383830414171561178e579050905061028052610200516102805180820182811061178e579050905061020052610220516102605180820182811061178e5790509050610220526002610180516020525f5260405f20610200518155610220516001820155610240516002820155506003610180516020525f5260405f20806101e0516020525f5260405f20905080546102605180820182811061178e57905090508155506101a0516040525f6060526115ae6102a0610fc3565b6102a080516102005260208101516102205260408101516102405250610200516102805180820182811061178e579050905061020052610220516102605180820182811061178e57905090506102205260046101a0516020525f5260405f206102005181556102205160018201556102405160028201555060056101a0516020525f5260405f20806101e0516020525f5260405f20905080546102605180820182811061178e57905090508155506101a051610180517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101c0516102a05260206102a0a36101a051610180517f9c0aa947e19ab1e2400ff167e2cb40414b570fdaf31ab646a16749ca3c4301ad610280516102a052610260516102c052426102e05260606102a0a3610180516040525f6060526116ed6102a0610fc3565b6102a0805161030052602081015161032052604081015161034052506004610180516020525f5260405f20610300518155610320516001820155610340516002820155506101a05160405260016060526117486102a0610fc3565b6102a08051610300526020810151610320526040810151610340525060026101a0516020525f5260405f2061030051815561032051600182015561034051600282015550565b5f80fd01ff0dfa0dfa019c08d80dfa00180a6607370cb902bc09b7050f0dfa0dfa026e0aea0d5c0aa804790dfaec1c56c0e6529945ef20295effee7caf8627d2f4535d4b2198931c51e2e8e7250000000000000000000000005f3b5dfeb7b28cdbd7faba78963ee202a494e2a2

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.