ETH Price: $2,832.23 (+2.29%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Mint238645102025-11-23 22:17:3547 mins ago1763936255IN
Curve: Minter
0 ETH0.000074480.17190326
Mint238644012025-11-23 21:55:351 hr ago1763934935IN
Curve: Minter
0 ETH0.000036870.08909961
Mint238639372025-11-23 20:21:352 hrs ago1763929295IN
Curve: Minter
0 ETH0.000040480.10222615
Mint238638922025-11-23 20:12:232 hrs ago1763928743IN
Curve: Minter
0 ETH0.000043540.11491914
Mint238637442025-11-23 19:42:353 hrs ago1763926955IN
Curve: Minter
0 ETH0.000060290.14256027
Mint238615412025-11-23 12:18:4710 hrs ago1763900327IN
Curve: Minter
0 ETH0.000088380.2285473
Mint238615302025-11-23 12:16:2310 hrs ago1763900183IN
Curve: Minter
0 ETH0.000069290.17918793
Mint238604872025-11-23 8:45:5914 hrs ago1763887559IN
Curve: Minter
0 ETH0.000070840.18320618
Mint238604772025-11-23 8:43:5914 hrs ago1763887439IN
Curve: Minter
0 ETH0.000038130.0981047
Mint238604182025-11-23 8:32:1114 hrs ago1763886731IN
Curve: Minter
0 ETH0.000079390.18125044
Mint238598452025-11-23 6:36:3516 hrs ago1763879795IN
Curve: Minter
0 ETH0.000054650.13221785
Mint238598032025-11-23 6:28:1116 hrs ago1763879291IN
Curve: Minter
0 ETH0.000027480.06649938
Mint238578532025-11-22 23:51:1123 hrs ago1763855471IN
Curve: Minter
0 ETH0.000056260.14099101
Mint238578472025-11-22 23:49:5923 hrs ago1763855399IN
Curve: Minter
0 ETH0.000026750.06703478
Mint238564132025-11-22 18:57:4728 hrs ago1763837867IN
Curve: Minter
0 ETH0.000423261.06475749
Mint238553452025-11-22 15:21:4731 hrs ago1763824907IN
Curve: Minter
0 ETH0.000031290.08192738
Mint238540612025-11-22 11:02:3536 hrs ago1763809355IN
Curve: Minter
0 ETH0.00003190.076662
Mint238540012025-11-22 10:50:1136 hrs ago1763808611IN
Curve: Minter
0 ETH0.000033190.0766148
Mint238527132025-11-22 6:29:2340 hrs ago1763792963IN
Curve: Minter
0 ETH0.000221590.58012041
Mint238523912025-11-22 5:23:5941 hrs ago1763789039IN
Curve: Minter
0 ETH0.000048250.12092148
Mint238520312025-11-22 4:11:3542 hrs ago1763784695IN
Curve: Minter
0 ETH0.000252320.62185349
Mint238492992025-11-21 18:57:232 days ago1763751443IN
Curve: Minter
0 ETH0.000224920.55257446
Mint238488602025-11-21 17:28:472 days ago1763746127IN
Curve: Minter
0 ETH0.000394430.95309789
Mint238488412025-11-21 17:24:592 days ago1763745899IN
Curve: Minter
0 ETH0.000443911.1504613
Mint238487082025-11-21 16:57:592 days ago1763744279IN
Curve: Minter
0 ETH0.000712791.87984999
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vyper_contract

Compiler Version
vyper:0.2.4

Optimization Enabled:
N/A

Other Settings:
petersburg EvmVersion, MIT license

Contract Source Code (Vyper language format)

# @version 0.2.4
"""
@title Token Minter
@author Curve Finance
@license MIT
"""

interface LiquidityGauge:
    # Presumably, other gauges will provide the same interfaces
    def integrate_fraction(addr: address) -> uint256: view
    def user_checkpoint(addr: address) -> bool: nonpayable

interface MERC20:
    def mint(_to: address, _value: uint256) -> bool: nonpayable

interface GaugeController:
    def gauge_types(addr: address) -> int128: view


event Minted:
    recipient: indexed(address)
    gauge: address
    minted: uint256


token: public(address)
controller: public(address)

# user -> gauge -> value
minted: public(HashMap[address, HashMap[address, uint256]])

# minter -> user -> can mint?
allowed_to_mint_for: public(HashMap[address, HashMap[address, bool]])


@external
def __init__(_token: address, _controller: address):
    self.token = _token
    self.controller = _controller


@internal
def _mint_for(gauge_addr: address, _for: address):
    assert GaugeController(self.controller).gauge_types(gauge_addr) >= 0  # dev: gauge is not added

    LiquidityGauge(gauge_addr).user_checkpoint(_for)
    total_mint: uint256 = LiquidityGauge(gauge_addr).integrate_fraction(_for)
    to_mint: uint256 = total_mint - self.minted[_for][gauge_addr]

    if to_mint != 0:
        MERC20(self.token).mint(_for, to_mint)
        self.minted[_for][gauge_addr] = total_mint

        log Minted(_for, gauge_addr, total_mint)


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


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


@external
@nonreentrant('lock')
def mint_for(gauge_addr: address, _for: address):
    """
    @notice Mint tokens for `_for`
    @dev Only possible when `msg.sender` has been approved via `toggle_approve_mint`
    @param gauge_addr `LiquidityGauge` address to get mintable amount from
    @param _for Address to mint to
    """
    if self.allowed_to_mint_for[msg.sender][_for]:
        self._mint_for(gauge_addr, _for)


@external
def toggle_approve_mint(minting_user: address):
    """
    @notice allow `minting_user` to mint for `msg.sender`
    @param minting_user Address to toggle permission for
    """
    self.allowed_to_mint_for[minting_user][msg.sender] = not self.allowed_to_mint_for[minting_user][msg.sender]

Contract Security Audit

Contract ABI

API
[{"name":"Minted","inputs":[{"type":"address","name":"recipient","indexed":true},{"type":"address","name":"gauge","indexed":false},{"type":"uint256","name":"minted","indexed":false}],"anonymous":false,"type":"event"},{"outputs":[],"inputs":[{"type":"address","name":"_token"},{"type":"address","name":"_controller"}],"stateMutability":"nonpayable","type":"constructor"},{"name":"mint","outputs":[],"inputs":[{"type":"address","name":"gauge_addr"}],"stateMutability":"nonpayable","type":"function","gas":100038},{"name":"mint_many","outputs":[],"inputs":[{"type":"address[8]","name":"gauge_addrs"}],"stateMutability":"nonpayable","type":"function","gas":408502},{"name":"mint_for","outputs":[],"inputs":[{"type":"address","name":"gauge_addr"},{"type":"address","name":"_for"}],"stateMutability":"nonpayable","type":"function","gas":101219},{"name":"toggle_approve_mint","outputs":[],"inputs":[{"type":"address","name":"minting_user"}],"stateMutability":"nonpayable","type":"function","gas":36726},{"name":"token","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1301},{"name":"controller","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1331},{"name":"minted","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"arg0"},{"type":"address","name":"arg1"}],"stateMutability":"view","type":"function","gas":1669},{"name":"allowed_to_mint_for","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"arg0"},{"type":"address","name":"arg1"}],"stateMutability":"view","type":"function","gas":1699}]

740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a05260406107036101403934156100a157600080fd5b602061070360c03960c05160205181106100ba57600080fd5b50602060206107030160c03960c05160205181106100d757600080fd5b5061014051600055610160516001556106eb56600436101561000d576105fa565b600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a052600015610278575b610180526101405261016052600060206102206024633f9095b76101a052610140516101c0526101bc6001545afa6100e057600080fd5b601f3d116100ed57600080fd5b6000506102205112156100ff57600080fd5b60206102c06024634b82009361024052610160516102605261025c6000610140515af161012b57600080fd5b601f3d1161013857600080fd5b6000506102c05060206103806024630940070761030052610160516103205261031c610140515afa61016957600080fd5b601f3d1161017657600080fd5b600050610380516102e0526102e05160026101605160e05260c052604060c0206101405160e05260c052604060c02054808210156101b357600080fd5b808203905090506103a05260006103a051181561027257602061046060446340c10f196103c052610160516103e0526103a051610400526103dc60006000545af16101fd57600080fd5b601f3d1161020a57600080fd5b600050610460506102e05160026101605160e05260c052604060c0206101405160e05260c052604060c0205561014051610480526102e0516104a052610160517f9d228d69b5fdb8d273a2336f8fb8612d039631024ea9bf09c424a9503aa078f06040610480a25b61018051565b636a62784260005114156102e25762ffffff541561029557600080fd5b600162ffffff5534156102a757600080fd5b60043560205181106102b857600080fd5b506004356101405233610160526101605161014051600658016100a9565b600050600062ffffff55005b63a51e190460005114156103d45762ffffff54156102ff57600080fd5b600162ffffff55341561031157600080fd5b6000610120525b6101205160040135602051811061032e57600080fd5b50602061012051016101205261010061012051101561034c57610318565b61014060006008818352015b6004610140516008811061036b57600080fd5b6020020135151561037b576103c9565b610140516004610140516008811061039257600080fd5b602002013561018052336101a0526101a05161018051600658016100a9565b610140526000505b8151600101808352811415610358575b5050600062ffffff55005b6327f18ae360005114156104755762ffffff54156103f157600080fd5b600162ffffff55341561040357600080fd5b600435602051811061041457600080fd5b50602435602051811061042657600080fd5b5060033360e05260c052604060c02060243560e05260c052604060c020541561046c5760043561014052602435610160526101605161014051600658016100a9565b6000505b600062ffffff55005b63dd289d6060005114156104dd57341561048e57600080fd5b600435602051811061049f57600080fd5b50600360043560e05260c052604060c0203360e05260c052604060c0205415600360043560e05260c052604060c0203360e05260c052604060c02055005b63fc0c546a60005114156105045734156104f657600080fd5b60005460005260206000f350005b63f77c4791600051141561052b57341561051d57600080fd5b60015460005260206000f350005b638b752bb0600051141561059257341561054457600080fd5b600435602051811061055557600080fd5b50602435602051811061056757600080fd5b50600260043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f350005b63a099003360005114156105f95734156105ab57600080fd5b60043560205181106105bc57600080fd5b5060243560205181106105ce57600080fd5b50600360043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f350005b5b60006000fd5b6100eb6106eb036100eb6000396100eb6106eb036000f3000000000000000000000000d533a949740bb3306d119cc777fa900ba034cd520000000000000000000000002f50d538606fa9edd2b11e2446beb18c9d5846bb

Deployed Bytecode

0x600436101561000d576105fa565b600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a052600015610278575b610180526101405261016052600060206102206024633f9095b76101a052610140516101c0526101bc6001545afa6100e057600080fd5b601f3d116100ed57600080fd5b6000506102205112156100ff57600080fd5b60206102c06024634b82009361024052610160516102605261025c6000610140515af161012b57600080fd5b601f3d1161013857600080fd5b6000506102c05060206103806024630940070761030052610160516103205261031c610140515afa61016957600080fd5b601f3d1161017657600080fd5b600050610380516102e0526102e05160026101605160e05260c052604060c0206101405160e05260c052604060c02054808210156101b357600080fd5b808203905090506103a05260006103a051181561027257602061046060446340c10f196103c052610160516103e0526103a051610400526103dc60006000545af16101fd57600080fd5b601f3d1161020a57600080fd5b600050610460506102e05160026101605160e05260c052604060c0206101405160e05260c052604060c0205561014051610480526102e0516104a052610160517f9d228d69b5fdb8d273a2336f8fb8612d039631024ea9bf09c424a9503aa078f06040610480a25b61018051565b636a62784260005114156102e25762ffffff541561029557600080fd5b600162ffffff5534156102a757600080fd5b60043560205181106102b857600080fd5b506004356101405233610160526101605161014051600658016100a9565b600050600062ffffff55005b63a51e190460005114156103d45762ffffff54156102ff57600080fd5b600162ffffff55341561031157600080fd5b6000610120525b6101205160040135602051811061032e57600080fd5b50602061012051016101205261010061012051101561034c57610318565b61014060006008818352015b6004610140516008811061036b57600080fd5b6020020135151561037b576103c9565b610140516004610140516008811061039257600080fd5b602002013561018052336101a0526101a05161018051600658016100a9565b610140526000505b8151600101808352811415610358575b5050600062ffffff55005b6327f18ae360005114156104755762ffffff54156103f157600080fd5b600162ffffff55341561040357600080fd5b600435602051811061041457600080fd5b50602435602051811061042657600080fd5b5060033360e05260c052604060c02060243560e05260c052604060c020541561046c5760043561014052602435610160526101605161014051600658016100a9565b6000505b600062ffffff55005b63dd289d6060005114156104dd57341561048e57600080fd5b600435602051811061049f57600080fd5b50600360043560e05260c052604060c0203360e05260c052604060c0205415600360043560e05260c052604060c0203360e05260c052604060c02055005b63fc0c546a60005114156105045734156104f657600080fd5b60005460005260206000f350005b63f77c4791600051141561052b57341561051d57600080fd5b60015460005260206000f350005b638b752bb0600051141561059257341561054457600080fd5b600435602051811061055557600080fd5b50602435602051811061056757600080fd5b50600260043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f350005b63a099003360005114156105f95734156105ab57600080fd5b60043560205181106105bc57600080fd5b5060243560205181106105ce57600080fd5b50600360043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f350005b5b60006000fd

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

000000000000000000000000d533a949740bb3306d119cc777fa900ba034cd520000000000000000000000002f50d538606fa9edd2b11e2446beb18c9d5846bb

-----Decoded View---------------
Arg [0] : _token (address): 0xD533a949740bb3306d119CC777fa900bA034cd52
Arg [1] : _controller (address): 0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000d533a949740bb3306d119cc777fa900ba034cd52
Arg [1] : 0000000000000000000000002f50d538606fa9edd2b11e2446beb18c9d5846bb


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.