POL Price: $0.217734 (-0.27%)
Gas: 28 GWei
 

Overview

POL Balance

Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo0 POL

POL Value

$0.00

Token Holdings

Multichain Info

Transaction Hash
Method
Block
From
To
Mint706445852025-04-23 6:13:031 hr ago1745388783IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.0061710228.5999999
Mint705797202025-04-21 15:48:2839 hrs ago1745250508IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.0063583629.4682634
Mint705742772025-04-21 12:34:5543 hrs ago1745238895IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.0074129229.99000004
Mint705445252025-04-20 19:00:242 days ago1745175624IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.0070963230.84285716
Mint705270702025-04-20 8:41:572 days ago1745138517IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.0069007530.00000003
Mint705191332025-04-20 4:00:213 days ago1745121621IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.006902430.00000005
Mint705190512025-04-20 3:57:273 days ago1745121447IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.007331430.00000003
Mint705037102025-04-19 18:53:183 days ago1745088798IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.0080104530.00000002
Mint704822952025-04-19 6:10:194 days ago1745043019IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.0069844530.00000003
Mint704819352025-04-19 5:57:314 days ago1745042251IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.007415430.00000003
Mint704497632025-04-18 10:56:124 days ago1744973772IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.006473130.00000004
Mint704497062025-04-18 10:54:104 days ago1744973650IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.0073351230.00000003
Mint704222452025-04-17 18:31:375 days ago1744914697IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.006094226.17000002
Mint703728022025-04-16 13:04:096 days ago1744808649IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.0064763330.0150011
Mint703727882025-04-16 13:03:396 days ago1744808619IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.006473130.0000011
Mint703708652025-04-16 11:55:106 days ago1744804510IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.006986130.00000007
Mint703681372025-04-16 10:17:206 days ago1744798640IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.0069844530.00000005
Mint703438652025-04-15 19:54:517 days ago1744746891IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.0072695733.69133335
Mint703409732025-04-15 18:12:257 days ago1744740745IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.0058761927.23360176
Mint703314752025-04-15 12:29:377 days ago1744720177IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.0064822728.18073153
Mint702897942025-04-14 11:50:528 days ago1744631452IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.007692235.65000003
Mint702891242025-04-14 11:26:368 days ago1744629996IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.006346829.80000006
Mint702862892025-04-14 9:44:048 days ago1744623844IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.007415430.00001026
Mint702748022025-04-14 2:52:009 days ago1744599120IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.005874727.58336738
Mint702747742025-04-14 2:51:009 days ago1744599060IN
Curve.fi: ChildLiquidityGaugeFactory
0 POL0.0064096327.85827769
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
620456032024-09-20 6:20:37215 days ago1726813237
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
605112372024-08-12 19:37:01253 days ago1723491421
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
600631572024-08-01 10:35:51264 days ago1722508551
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
598321622024-07-26 12:49:30270 days ago1721998170
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
593941582024-07-15 15:23:08281 days ago1721056988
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
593058032024-07-13 10:08:16283 days ago1720865296
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
591540452024-07-09 15:34:49287 days ago1720539289
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
590346122024-07-06 16:13:11290 days ago1720282391
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
578068972024-06-05 19:06:37321 days ago1717614397
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
574359412024-05-27 3:29:13331 days ago1716780553
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
572673412024-05-22 17:54:43335 days ago1716400483
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
571844802024-05-20 12:40:48337 days ago1716208848
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
569075672024-05-13 4:55:12345 days ago1715576112
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
566981952024-05-07 21:43:43350 days ago1715118223
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
563961072024-04-29 19:56:05358 days ago1714420565
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
556036652024-04-08 22:01:26379 days ago1712613686
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
555050722024-04-06 9:09:55381 days ago1712394595
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
554468862024-04-04 20:15:29383 days ago1712261729
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
552491462024-03-30 11:29:05388 days ago1711798145
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
550711452024-03-25 18:03:59393 days ago1711389839
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
545165192024-03-11 4:09:13408 days ago1710130153
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
543566412024-03-07 2:48:12412 days ago1709779692
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
541135022024-02-29 21:49:35418 days ago1709243375
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
537739692024-02-21 6:17:04427 days ago1708496224
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
537158272024-02-19 18:08:14428 days ago1708366094
Curve.fi: ChildLiquidityGaugeFactory
 Contract Creation0 POL
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vyper_contract

Compiler Version
vyper:0.3.1

Optimization Enabled:
N/A

Other Settings:
default evmVersion, MIT license

Contract Source Code (Vyper language format)

# @version 0.3.1
"""
@title Child Liquidity Gauge Factory
@license MIT
@author Curve Finance
"""


interface ChildGauge:
    def initialize(_lp_token: address, _manager: address): nonpayable
    def integrate_fraction(_user: address) -> uint256: view
    def user_checkpoint(_user: address) -> bool: nonpayable

interface CallProxy:
    def anyCall(
        _to: address, _data: Bytes[1024], _fallback: address, _to_chain_id: uint256
    ): nonpayable


event DeployedGauge:
    _implementation: indexed(address)
    _lp_token: indexed(address)
    _deployer: indexed(address)
    _salt: bytes32
    _gauge: address

event Minted:
    _user: indexed(address)
    _gauge: indexed(address)
    _new_total: uint256

event UpdateImplementation:
    _old_implementation: address
    _new_implementation: address

event UpdateVotingEscrow:
    _old_voting_escrow: address
    _new_voting_escrow: address

event UpdateCallProxy:
    _old_call_proxy: address
    _new_call_proxy: address

event UpdateMirrored:
    _gauge: indexed(address)
    _mirrored: bool

event TransferOwnership:
    _old_owner: address
    _new_owner: address


WEEK: constant(uint256) = 86400 * 7


CRV: immutable(address)


get_implementation: public(address)
voting_escrow: public(address)

owner: public(address)
future_owner: public(address)

call_proxy: public(address)
# [last_request][has_counterpart][is_valid_gauge]
gauge_data: public(HashMap[address, uint256])
# user -> gauge -> value
minted: public(HashMap[address, HashMap[address, uint256]])

get_gauge_from_lp_token: public(HashMap[address, address])
get_gauge_count: public(uint256)
get_gauge: public(address[MAX_INT128])


@external
def __init__(_call_proxy: address, _crv: address, _owner: address):
    CRV = _crv

    self.call_proxy = _call_proxy
    log UpdateCallProxy(ZERO_ADDRESS, _call_proxy)

    self.owner = _owner
    log TransferOwnership(ZERO_ADDRESS, _owner)


@internal
def _psuedo_mint(_gauge: address, _user: address):
    gauge_data: uint256 = self.gauge_data[_gauge]
    assert gauge_data != 0  # dev: invalid gauge

    # if is_mirrored and last_request != this week
    if bitwise_and(gauge_data, 2) != 0 and shift(gauge_data, -2) / WEEK != block.timestamp / WEEK:
        CallProxy(self.call_proxy).anyCall(
            self,
            _abi_encode(_gauge, method_id=method_id("transmit_emissions(address)")),
            ZERO_ADDRESS,
            1,
        )
        # update last request time
        self.gauge_data[_gauge] = shift(block.timestamp, 2) + 3

    assert ChildGauge(_gauge).user_checkpoint(_user)
    total_mint: uint256 = ChildGauge(_gauge).integrate_fraction(_user)
    to_mint: uint256 = total_mint - self.minted[_user][_gauge]

    if to_mint != 0:
        # transfer tokens to user
        response: Bytes[32] = raw_call(
            CRV,
            _abi_encode(_user, to_mint, method_id=method_id("transfer(address,uint256)")),
            max_outsize=32,
        )
        if len(response) != 0:
            assert convert(response, bool)
        self.minted[_user][_gauge] = total_mint

        log Minted(_user, _gauge, total_mint)


@external
@nonreentrant("lock")
def mint(_gauge: address):
    """
    @notice Mint everything which belongs to `msg.sender` and send to them
    @param _gauge `LiquidityGauge` address to get mintable amount from
    """
    self._psuedo_mint(_gauge, msg.sender)


@external
@nonreentrant("lock")
def mint_many(_gauges: address[32]):
    """
    @notice Mint everything which belongs to `msg.sender` across multiple gauges
    @param _gauges List of `LiquidityGauge` addresses
    """
    for i in range(32):
        if _gauges[i] == ZERO_ADDRESS:
            pass
        self._psuedo_mint(_gauges[i], msg.sender)


@external
def deploy_gauge(_lp_token: address, _salt: bytes32, _manager: address = msg.sender) -> address:
    """
    @notice Deploy a liquidity gauge
    @param _lp_token The token to deposit in the gauge
    @param _manager The address to set as manager of the gauge
    @param _salt A value to deterministically deploy a gauge
    """
    if self.get_gauge_from_lp_token[_lp_token] != ZERO_ADDRESS:
        # overwriting lp_token -> gauge mapping requires
        assert msg.sender == self.owner  # dev: only owner

    gauge_data: uint256 = 1  # set is_valid_gauge = True
    implementation: address = self.get_implementation
    gauge: address = create_forwarder_to(
        implementation, salt=keccak256(_abi_encode(chain.id, msg.sender, _salt))
    )

    if msg.sender == self.call_proxy:
        gauge_data += 2  # set mirrored = True
        log UpdateMirrored(gauge, True)
        # issue a call to the root chain to deploy a root gauge
        CallProxy(self.call_proxy).anyCall(
            self,
            _abi_encode(chain.id, _salt, method_id=method_id("deploy_gauge(uint256,bytes32)")),
            ZERO_ADDRESS,
            1
        )

    self.gauge_data[gauge] = gauge_data

    idx: uint256 = self.get_gauge_count
    self.get_gauge[idx] = gauge
    self.get_gauge_count = idx + 1
    self.get_gauge_from_lp_token[_lp_token] = gauge

    ChildGauge(gauge).initialize(_lp_token, _manager)

    log DeployedGauge(implementation, _lp_token, msg.sender, _salt, gauge)
    return gauge


@external
def set_voting_escrow(_voting_escrow: address):
    """
    @notice Update the voting escrow contract
    @param _voting_escrow Contract to use as the voting escrow oracle
    """
    assert msg.sender == self.owner  # dev: only owner

    log UpdateVotingEscrow(self.voting_escrow, _voting_escrow)
    self.voting_escrow = _voting_escrow


@external
def set_implementation(_implementation: address):
    """
    @notice Set the implementation
    @param _implementation The address of the implementation to use
    """
    assert msg.sender == self.owner  # dev: only owner

    log UpdateImplementation(self.get_implementation, _implementation)
    self.get_implementation = _implementation


@external
def set_mirrored(_gauge: address, _mirrored: bool):
    """
    @notice Set the mirrored bit of the gauge data for `_gauge`
    @param _gauge The gauge of interest
    @param _mirrored Boolean deteremining whether to set the mirrored bit to True/False
    """
    gauge_data: uint256 = self.gauge_data[_gauge]
    assert gauge_data != 0  # dev: invalid gauge
    assert msg.sender == self.owner  # dev: only owner

    gauge_data = shift(shift(gauge_data, -2), 2) + 1  # set is_valid_gauge = True
    if _mirrored:
        gauge_data += 2  # set is_mirrored = True

    self.gauge_data[_gauge] = gauge_data
    log UpdateMirrored(_gauge, _mirrored)


@external
def set_call_proxy(_new_call_proxy: address):
    """
    @notice Set the address of the call proxy used
    @dev _new_call_proxy should adhere to the same interface as defined
    @param _new_call_proxy Address of the cross chain call proxy
    """
    assert msg.sender == self.owner

    log UpdateCallProxy(self.call_proxy, _new_call_proxy)
    self.call_proxy = _new_call_proxy


@external
def commit_transfer_ownership(_future_owner: address):
    """
    @notice Transfer ownership to `_future_owner`
    @param _future_owner The account to commit as the future owner
    """
    assert msg.sender == self.owner  # dev: only owner

    self.future_owner = _future_owner


@external
def accept_transfer_ownership():
    """
    @notice Accept the transfer of ownership
    @dev Only the committed future owner can call this function
    """
    assert msg.sender == self.future_owner  # dev: only future owner

    log TransferOwnership(self.owner, msg.sender)
    self.owner = msg.sender


@view
@external
def is_valid_gauge(_gauge: address) -> bool:
    """
    @notice Query whether the gauge is a valid one deployed via the factory
    @param _gauge The address of the gauge of interest
    """
    return self.gauge_data[_gauge] != 0


@view
@external
def is_mirrored(_gauge: address) -> bool:
    """
    @notice Query whether the gauge is mirrored on Ethereum mainnet
    @param _gauge The address of the gauge of interest
    """
    return bitwise_and(self.gauge_data[_gauge], 2) != 0


@view
@external
def last_request(_gauge: address) -> uint256:
    """
    @notice Query the timestamp of the last cross chain request for emissions
    @param _gauge The address of the gauge of interest
    """
    return shift(self.gauge_data[_gauge], -2)

Contract Security Audit

Contract ABI

API
[{"name":"DeployedGauge","inputs":[{"name":"_implementation","type":"address","indexed":true},{"name":"_lp_token","type":"address","indexed":true},{"name":"_deployer","type":"address","indexed":true},{"name":"_salt","type":"bytes32","indexed":false},{"name":"_gauge","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"Minted","inputs":[{"name":"_user","type":"address","indexed":true},{"name":"_gauge","type":"address","indexed":true},{"name":"_new_total","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateImplementation","inputs":[{"name":"_old_implementation","type":"address","indexed":false},{"name":"_new_implementation","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateVotingEscrow","inputs":[{"name":"_old_voting_escrow","type":"address","indexed":false},{"name":"_new_voting_escrow","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateCallProxy","inputs":[{"name":"_old_call_proxy","type":"address","indexed":false},{"name":"_new_call_proxy","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateMirrored","inputs":[{"name":"_gauge","type":"address","indexed":true},{"name":"_mirrored","type":"bool","indexed":false}],"anonymous":false,"type":"event"},{"name":"TransferOwnership","inputs":[{"name":"_old_owner","type":"address","indexed":false},{"name":"_new_owner","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_call_proxy","type":"address"},{"name":"_crv","type":"address"},{"name":"_owner","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"mint","inputs":[{"name":"_gauge","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"mint_many","inputs":[{"name":"_gauges","type":"address[32]"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"deploy_gauge","inputs":[{"name":"_lp_token","type":"address"},{"name":"_salt","type":"bytes32"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"deploy_gauge","inputs":[{"name":"_lp_token","type":"address"},{"name":"_salt","type":"bytes32"},{"name":"_manager","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"set_voting_escrow","inputs":[{"name":"_voting_escrow","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_implementation","inputs":[{"name":"_implementation","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_mirrored","inputs":[{"name":"_gauge","type":"address"},{"name":"_mirrored","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_call_proxy","inputs":[{"name":"_new_call_proxy","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_ownership","inputs":[{"name":"_future_owner","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_ownership","inputs":[],"outputs":[]},{"stateMutability":"view","type":"function","name":"is_valid_gauge","inputs":[{"name":"_gauge","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"is_mirrored","inputs":[{"name":"_gauge","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"last_request","inputs":[{"name":"_gauge","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_implementation","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"voting_escrow","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"future_owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"call_proxy","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"gauge_data","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"minted","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_gauge_from_lp_token","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"get_gauge_count","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_gauge","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}]}]

6020610e936080396080518060a01c610e8e5760e05260206020610e93016080396080518060a01c610e8e576101005260206040610e93016080396080518060a01c610e8e5761012052610100516101405260e0516005557fe385116766307e81d4427b03f1ac50c300b2f6a5df7b3c67eeb7eaaab12f080560006101605260e051610180526040610160a1610120516003557f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60006101605261012051610180526040610160a1610e6656600436101561000d57610a7e565b60046000601c3760005134610d9557636a627842811861005d576004358060a01c610d95576102a052600054610d955760016000556102a05160e0523361010052610056610a84565b6000600055005b6355ec670881186102cf576004358060a01c610d95576102a0526024358060a01c610d95576102c0526044358060a01c610d95576102e0526064358060a01c610d9557610300526084358060a01c610d95576103205260a4358060a01c610d95576103405260c4358060a01c610d95576103605260e4358060a01c610d955761038052610104358060a01c610d95576103a052610124358060a01c610d95576103c052610144358060a01c610d95576103e052610164358060a01c610d955761040052610184358060a01c610d9557610420526101a4358060a01c610d9557610440526101c4358060a01c610d9557610460526101e4358060a01c610d955761048052610204358060a01c610d95576104a052610224358060a01c610d95576104c052610244358060a01c610d95576104e052610264358060a01c610d955761050052610284358060a01c610d9557610520526102a4358060a01c610d9557610540526102c4358060a01c610d9557610560526102e4358060a01c610d955761058052610304358060a01c610d95576105a052610324358060a01c610d95576105c052610344358060a01c610d95576105e052610364358060a01c610d955761060052610384358060a01c610d9557610620526103a4358060a01c610d9557610640526103c4358060a01c610d9557610660526103e4358060a01c610d955761068052600054610d955760016000556106a060006020818352015b6102a06106a0516020811015610d95576020020151610292575b6102a06106a0516020811015610d9557602002015160e05233610100526102b7610a84565b81516001018083528114156102785750506000600055005b638db98b5c81186102e45733610100526102ff565b636be320d281186105e2576044358060a01c610d9557610100525b6004358060a01c610d955760e0526000600860e05160a0526080526040608020541461032f576003543318610d95575b600161012052600154610140527f602d3d8160093d39f3363d3d373d3d3d363d7300000000000000000000000000610280526101405160601b610293527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006102a752466102205233610240526024356102605260606102005261020080516020820120905060366102806000f56101605260055433186104e157610120805160028181830110610d955780820190509050815250610160517f54b0a41dd85251df77437effbf9fbdca133bd234e7771816495877177288092c6001610180526020610180a263f9754c936102005261022080608030825260208201915080825263e10a16b8610184526004466101a4526024356101c45260400161018052610180818401808280516020018083828460045afa905050508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f82010390509050905090508101905060208201915060008252602082019150600182525050506005543b15610d95576000600061010461021c60006005545af16104e1573d600060003e3d6000fd5b6101205160066101605160a05260805260406080205560095461018052610160516001610180516f7fffffffffffffffffffffffffffffff811015610d955702600a01556101805160018181830110610d95578082019050905060095561016051600860e05160a05260805260406080205563485cc9556101a05260e0516101c052610100516101e052610160513b15610d95576000600060446101bc6000610160515af1610595573d600060003e3d6000fd5b3360e051610140517f69e16554b097f489830077da86e9e40cc91529a8d0787c42c4f33a0a337a0e086024356101a052610160516101c05260406101a0a4610160516101a05260206101a0f35b6323fc5a478118610641576004358060a01c610d955760e0526003543318610d95577fa1b167642dcf1fee2fbf716c48c7c3f2326e4f26020cb042cd6405dfa72f4fd26002546101005260e051610120526040610100a160e051600255005b634cd69da081186106a0576004358060a01c610d955760e0526003543318610d95577fcdfeee65e4d0a88d6e47c5d034c34b03d52f1e6ffc56906257fc93d993ca04c46001546101005260e051610120526040610100a160e051600155005b634b29cac8811861077e576004358060a01c610d955760e0526024358060011c610d955761010052600660e05160a0526080526040608020546101205260006101205114610d95576003543318610d95576101205160021c60021b60018181830110610d95578082019050905061012052610100511561073557610120805160028181830110610d9557808201905090508152505b61012051600660e05160a05260805260406080205560e0517f54b0a41dd85251df77437effbf9fbdca133bd234e7771816495877177288092c61010051610140526020610140a2005b635ecb9e1481186107dd576004358060a01c610d955760e0526003543318610d95577fe385116766307e81d4427b03f1ac50c300b2f6a5df7b3c67eeb7eaaab12f08056005546101005260e051610120526040610100a160e051600555005b636b441a408118610807576004358060a01c610d955760e0526003543318610d955760e051600455005b63e5ea47b88118610852576004543318610d95577f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60035460e0523361010052604060e0a133600355005b634b920379811861088b576004358060a01c610d955760e0526000600660e05160a0526080526040608020541415610100526020610100f35b638a42bd8281186108c7576004358060a01c610d955760e05260006002600660e05160a052608052604060802054161415610100526020610100f35b6351bd4db581186108ff576004358060a01c610d955760e052600660e05160a05260805260406080205460021c610100526020610100f35b63c781c66881186109165760015460e052602060e0f35b63dfe05031811861092d5760025460e052602060e0f35b638da5cb5b81186109445760035460e052602060e0f35b631ec0cdc1811861095b5760045460e052602060e0f35b63f81c6c3e81186109725760055460e052602060e0f35b63f0ce32f881186109a7576004358060a01c610d955760e052600660e05160a052608052604060802054610100526020610100f35b638b752bb081186109fa576004358060a01c610d955760e0526024358060a01c610d955761010052600760e05160a05260805260406080206101005160a052608052604060802054610120526020610120f35b635d95c65e8118610a2f576004358060a01c610d955760e052600860e05160a052608052604060802054610100526020610100f35b63f111569c8118610a465760095460e052602060e0f35b63285218488118610a7c5760016004356f7fffffffffffffffffffffffffffffff811015610d955702600a015460e052602060e0f35b505b60006000fd5b600660e05160a0526080526040608020546101205260006101205114610d95576000600261012051161415610aba576000610adb565b4262093a80808204905090506101205160021c62093a808082049050905014155b15610bcf5763f9754c936101a0526101c08060803082526020820191508082526311bfb95661014452600460e0516101645260200161014052610140818401808280516020018083828460045afa905050508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f82010390509050905090508101905060208201915060008252602082019150600182525050506005543b15610d95576000600060e46101bc60006005545af1610ba7573d600060003e3d6000fd5b4260021b60038181830110610d955780820190509050600660e05160a0526080526040608020555b634b8200936101405261010051610160526020610140602461015c600060e0515af1610c00573d600060003e3d6000fd5b601f3d1115610d95576101405115610d955763094007076101605261010051610180526020610160602461017c60e0515afa610c41573d600060003e3d6000fd5b601f3d1115610d955761016051610140526101405160076101005160a052608052604060802060e05160a052608052604060802054808210610d9557808203905090506101605260006101605114610d935763a9059cbb6101c4526004610100516101e45261016051610204526040016101c0526101c05060206102606101c0516101e060006020602038036080396080515af1610ce4573d600060003e3d6000fd5b61024060203d808211610cf75781610cf9565b805b905090508152805160200180610180828460045afa9050505060006101805114610d38576101a0516101805181816020036008021c9050905015610d95575b6101405160076101005160a052608052604060802060e05160a05260805260406080205560e051610100517f9d228d69b5fdb8d273a2336f8fb8612d039631024ea9bf09c424a9503aa078f0610140516101c05260206101c0a35b565b600080fd5b6100cc610e66036100cc610160396100cc610e66036101405181610160015280602001610160f35b600080fd00000000000000000000000037414a8662bc1d25be3ee51fb27c2686e2490a89000000000000000000000000172370d5cd63279efa6d502dab29171933a610af000000000000000000000000919124f5f5135d3020a0b075412679755545f7c5

Deployed Bytecode

0x600436101561000d57610a7e565b60046000601c3760005134610d9557636a627842811861005d576004358060a01c610d95576102a052600054610d955760016000556102a05160e0523361010052610056610a84565b6000600055005b6355ec670881186102cf576004358060a01c610d95576102a0526024358060a01c610d95576102c0526044358060a01c610d95576102e0526064358060a01c610d9557610300526084358060a01c610d95576103205260a4358060a01c610d95576103405260c4358060a01c610d95576103605260e4358060a01c610d955761038052610104358060a01c610d95576103a052610124358060a01c610d95576103c052610144358060a01c610d95576103e052610164358060a01c610d955761040052610184358060a01c610d9557610420526101a4358060a01c610d9557610440526101c4358060a01c610d9557610460526101e4358060a01c610d955761048052610204358060a01c610d95576104a052610224358060a01c610d95576104c052610244358060a01c610d95576104e052610264358060a01c610d955761050052610284358060a01c610d9557610520526102a4358060a01c610d9557610540526102c4358060a01c610d9557610560526102e4358060a01c610d955761058052610304358060a01c610d95576105a052610324358060a01c610d95576105c052610344358060a01c610d95576105e052610364358060a01c610d955761060052610384358060a01c610d9557610620526103a4358060a01c610d9557610640526103c4358060a01c610d9557610660526103e4358060a01c610d955761068052600054610d955760016000556106a060006020818352015b6102a06106a0516020811015610d95576020020151610292575b6102a06106a0516020811015610d9557602002015160e05233610100526102b7610a84565b81516001018083528114156102785750506000600055005b638db98b5c81186102e45733610100526102ff565b636be320d281186105e2576044358060a01c610d9557610100525b6004358060a01c610d955760e0526000600860e05160a0526080526040608020541461032f576003543318610d95575b600161012052600154610140527f602d3d8160093d39f3363d3d373d3d3d363d7300000000000000000000000000610280526101405160601b610293527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006102a752466102205233610240526024356102605260606102005261020080516020820120905060366102806000f56101605260055433186104e157610120805160028181830110610d955780820190509050815250610160517f54b0a41dd85251df77437effbf9fbdca133bd234e7771816495877177288092c6001610180526020610180a263f9754c936102005261022080608030825260208201915080825263e10a16b8610184526004466101a4526024356101c45260400161018052610180818401808280516020018083828460045afa905050508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f82010390509050905090508101905060208201915060008252602082019150600182525050506005543b15610d95576000600061010461021c60006005545af16104e1573d600060003e3d6000fd5b6101205160066101605160a05260805260406080205560095461018052610160516001610180516f7fffffffffffffffffffffffffffffff811015610d955702600a01556101805160018181830110610d95578082019050905060095561016051600860e05160a05260805260406080205563485cc9556101a05260e0516101c052610100516101e052610160513b15610d95576000600060446101bc6000610160515af1610595573d600060003e3d6000fd5b3360e051610140517f69e16554b097f489830077da86e9e40cc91529a8d0787c42c4f33a0a337a0e086024356101a052610160516101c05260406101a0a4610160516101a05260206101a0f35b6323fc5a478118610641576004358060a01c610d955760e0526003543318610d95577fa1b167642dcf1fee2fbf716c48c7c3f2326e4f26020cb042cd6405dfa72f4fd26002546101005260e051610120526040610100a160e051600255005b634cd69da081186106a0576004358060a01c610d955760e0526003543318610d95577fcdfeee65e4d0a88d6e47c5d034c34b03d52f1e6ffc56906257fc93d993ca04c46001546101005260e051610120526040610100a160e051600155005b634b29cac8811861077e576004358060a01c610d955760e0526024358060011c610d955761010052600660e05160a0526080526040608020546101205260006101205114610d95576003543318610d95576101205160021c60021b60018181830110610d95578082019050905061012052610100511561073557610120805160028181830110610d9557808201905090508152505b61012051600660e05160a05260805260406080205560e0517f54b0a41dd85251df77437effbf9fbdca133bd234e7771816495877177288092c61010051610140526020610140a2005b635ecb9e1481186107dd576004358060a01c610d955760e0526003543318610d95577fe385116766307e81d4427b03f1ac50c300b2f6a5df7b3c67eeb7eaaab12f08056005546101005260e051610120526040610100a160e051600555005b636b441a408118610807576004358060a01c610d955760e0526003543318610d955760e051600455005b63e5ea47b88118610852576004543318610d95577f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60035460e0523361010052604060e0a133600355005b634b920379811861088b576004358060a01c610d955760e0526000600660e05160a0526080526040608020541415610100526020610100f35b638a42bd8281186108c7576004358060a01c610d955760e05260006002600660e05160a052608052604060802054161415610100526020610100f35b6351bd4db581186108ff576004358060a01c610d955760e052600660e05160a05260805260406080205460021c610100526020610100f35b63c781c66881186109165760015460e052602060e0f35b63dfe05031811861092d5760025460e052602060e0f35b638da5cb5b81186109445760035460e052602060e0f35b631ec0cdc1811861095b5760045460e052602060e0f35b63f81c6c3e81186109725760055460e052602060e0f35b63f0ce32f881186109a7576004358060a01c610d955760e052600660e05160a052608052604060802054610100526020610100f35b638b752bb081186109fa576004358060a01c610d955760e0526024358060a01c610d955761010052600760e05160a05260805260406080206101005160a052608052604060802054610120526020610120f35b635d95c65e8118610a2f576004358060a01c610d955760e052600860e05160a052608052604060802054610100526020610100f35b63f111569c8118610a465760095460e052602060e0f35b63285218488118610a7c5760016004356f7fffffffffffffffffffffffffffffff811015610d955702600a015460e052602060e0f35b505b60006000fd5b600660e05160a0526080526040608020546101205260006101205114610d95576000600261012051161415610aba576000610adb565b4262093a80808204905090506101205160021c62093a808082049050905014155b15610bcf5763f9754c936101a0526101c08060803082526020820191508082526311bfb95661014452600460e0516101645260200161014052610140818401808280516020018083828460045afa905050508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f82010390509050905090508101905060208201915060008252602082019150600182525050506005543b15610d95576000600060e46101bc60006005545af1610ba7573d600060003e3d6000fd5b4260021b60038181830110610d955780820190509050600660e05160a0526080526040608020555b634b8200936101405261010051610160526020610140602461015c600060e0515af1610c00573d600060003e3d6000fd5b601f3d1115610d95576101405115610d955763094007076101605261010051610180526020610160602461017c60e0515afa610c41573d600060003e3d6000fd5b601f3d1115610d955761016051610140526101405160076101005160a052608052604060802060e05160a052608052604060802054808210610d9557808203905090506101605260006101605114610d935763a9059cbb6101c4526004610100516101e45261016051610204526040016101c0526101c05060206102606101c0516101e060006020602038036080396080515af1610ce4573d600060003e3d6000fd5b61024060203d808211610cf75781610cf9565b805b905090508152805160200180610180828460045afa9050505060006101805114610d38576101a0516101805181816020036008021c9050905015610d95575b6101405160076101005160a052608052604060802060e05160a05260805260406080205560e051610100517f9d228d69b5fdb8d273a2336f8fb8612d039631024ea9bf09c424a9503aa078f0610140516101c05260206101c0a35b565b600080fd000000000000000000000000172370d5cd63279efa6d502dab29171933a610af

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

00000000000000000000000037414a8662bc1d25be3ee51fb27c2686e2490a89000000000000000000000000172370d5cd63279efa6d502dab29171933a610af000000000000000000000000919124f5f5135d3020a0b075412679755545f7c5

-----Decoded View---------------
Arg [0] : _call_proxy (address): 0x37414a8662bC1D25be3ee51Fb27C2686e2490A89
Arg [1] : _crv (address): 0x172370d5Cd63279eFa6d502DAB29171933a610AF
Arg [2] : _owner (address): 0x919124f5f5135D3020a0B075412679755545F7c5

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000037414a8662bc1d25be3ee51fb27c2686e2490a89
Arg [1] : 000000000000000000000000172370d5cd63279efa6d502dab29171933a610af
Arg [2] : 000000000000000000000000919124f5f5135d3020a0b075412679755545f7c5


Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.