ETH Price: $2,708.55 (+0.38%)

Contract

0xC8b194925D55d5dE9555AD1db74c149329F71DeF
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Mint218560942025-02-16 2:49:594 hrs ago1739674199IN
0xC8b19492...329F71DeF
0 ETH0.000234870.8509508
Mint218518122025-02-15 12:25:5918 hrs ago1739622359IN
0xC8b19492...329F71DeF
0 ETH0.000559311.80296403
Mint218508272025-02-15 9:06:2321 hrs ago1739610383IN
0xC8b19492...329F71DeF
0 ETH0.000219420.79496636
Mint218497752025-02-15 5:33:4725 hrs ago1739597627IN
0xC8b19492...329F71DeF
0 ETH0.00020470.74163977
Mint218456672025-02-14 15:43:1139 hrs ago1739547791IN
0xC8b19492...329F71DeF
0 ETH0.000399251.2754905
Mint218436282025-02-14 8:51:5946 hrs ago1739523119IN
0xC8b19492...329F71DeF
0 ETH0.000472981.5246896
Mint218434112025-02-14 8:08:1146 hrs ago1739520491IN
0xC8b19492...329F71DeF
0 ETH0.00035721.21863425
Mint218423132025-02-14 4:26:592 days ago1739507219IN
0xC8b19492...329F71DeF
0 ETH0.000365351.2
Mint218421102025-02-14 3:46:112 days ago1739504771IN
0xC8b19492...329F71DeF
0 ETH0.000266710.90130785
Mint218378782025-02-13 13:32:352 days ago1739453555IN
0xC8b19492...329F71DeF
0 ETH0.000411081.48933677
Mint218362042025-02-13 7:54:472 days ago1739433287IN
0xC8b19492...329F71DeF
0 ETH0.000274610.88521389
Mint218360822025-02-13 7:30:232 days ago1739431823IN
0xC8b19492...329F71DeF
0 ETH0.000388011.32375493
Mint218359232025-02-13 6:58:113 days ago1739429891IN
0xC8b19492...329F71DeF
0 ETH0.000526281.69648229
Mint218354972025-02-13 5:32:353 days ago1739424755IN
0xC8b19492...329F71DeF
0 ETH0.000303590.9786296
Mint218352742025-02-13 4:47:233 days ago1739422043IN
0xC8b19492...329F71DeF
0 ETH0.000415151.33826963
Mint218350892025-02-13 4:10:233 days ago1739419823IN
0xC8b19492...329F71DeF
0 ETH0.00039521.27395379
Mint218347592025-02-13 3:04:113 days ago1739415851IN
0xC8b19492...329F71DeF
0 ETH0.000378961.21123381
Mint218346292025-02-13 2:38:113 days ago1739414291IN
0xC8b19492...329F71DeF
0 ETH0.000374871.34520371
Mint218346282025-02-13 2:37:593 days ago1739414279IN
0xC8b19492...329F71DeF
0 ETH0.000548621.85483782
Mint218343462025-02-13 1:40:353 days ago1739410835IN
0xC8b19492...329F71DeF
0 ETH0.000239280.809
Mint218342202025-02-13 1:15:233 days ago1739409323IN
0xC8b19492...329F71DeF
0 ETH0.000404381.29246523
Mint218337892025-02-12 23:48:353 days ago1739404115IN
0xC8b19492...329F71DeF
0 ETH0.000372261.2
Mint218287962025-02-12 7:01:594 days ago1739343719IN
0xC8b19492...329F71DeF
0 ETH0.000415611.24373
Mint218222652025-02-11 9:03:474 days ago1739264627IN
0xC8b19492...329F71DeF
0 ETH0.00022280.77762853
Mint218218722025-02-11 7:44:474 days ago1739259887IN
0xC8b19492...329F71DeF
0 ETH0.000278270.94933941
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
218564222025-02-16 3:56:353 hrs ago1739678195
0xC8b19492...329F71DeF
0 ETH
218564222025-02-16 3:56:353 hrs ago1739678195
0xC8b19492...329F71DeF
0 ETH
218564222025-02-16 3:56:353 hrs ago1739678195
0xC8b19492...329F71DeF
0 ETH
218564222025-02-16 3:56:353 hrs ago1739678195
0xC8b19492...329F71DeF
0 ETH
218564222025-02-16 3:56:353 hrs ago1739678195
0xC8b19492...329F71DeF
0 ETH
218564222025-02-16 3:56:353 hrs ago1739678195
0xC8b19492...329F71DeF
0 ETH
218563522025-02-16 3:42:353 hrs ago1739677355
0xC8b19492...329F71DeF
0 ETH
218563522025-02-16 3:42:353 hrs ago1739677355
0xC8b19492...329F71DeF
0 ETH
218563522025-02-16 3:42:353 hrs ago1739677355
0xC8b19492...329F71DeF
0 ETH
218563522025-02-16 3:42:353 hrs ago1739677355
0xC8b19492...329F71DeF
0 ETH
218563522025-02-16 3:42:353 hrs ago1739677355
0xC8b19492...329F71DeF
0 ETH
218563522025-02-16 3:42:353 hrs ago1739677355
0xC8b19492...329F71DeF
0 ETH
218561382025-02-16 2:58:474 hrs ago1739674727
0xC8b19492...329F71DeF
0 ETH
218561382025-02-16 2:58:474 hrs ago1739674727
0xC8b19492...329F71DeF
0 ETH
218561382025-02-16 2:58:474 hrs ago1739674727
0xC8b19492...329F71DeF
0 ETH
218561382025-02-16 2:58:474 hrs ago1739674727
0xC8b19492...329F71DeF
0 ETH
218561382025-02-16 2:58:474 hrs ago1739674727
0xC8b19492...329F71DeF
0 ETH
218561382025-02-16 2:58:474 hrs ago1739674727
0xC8b19492...329F71DeF
0 ETH
218560942025-02-16 2:49:594 hrs ago1739674199
0xC8b19492...329F71DeF
0 ETH
218560942025-02-16 2:49:594 hrs ago1739674199
0xC8b19492...329F71DeF
0 ETH
218560942025-02-16 2:49:594 hrs ago1739674199
0xC8b19492...329F71DeF
0 ETH
218560942025-02-16 2:49:594 hrs ago1739674199
0xC8b19492...329F71DeF
0 ETH
218560942025-02-16 2:49:594 hrs ago1739674199
0xC8b19492...329F71DeF
0 ETH
218560902025-02-16 2:49:114 hrs ago1739674151
0xC8b19492...329F71DeF
0 ETH
218560902025-02-16 2:49:114 hrs ago1739674151
0xC8b19492...329F71DeF
0 ETH
View All Internal Transactions
Loading...
Loading

Minimal Proxy Contract for 0xeba9a8fdd2539d33e070c66afc1127478ba78054

Contract Name:
Token Minter

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 Token Minter
@author Curve Finance
@license MIT
"""

# Original idea and credit:
# Curve Finance's Token Minter
# https://resources.curve.fi/base-features/understanding-gauges
# https://github.com/curvefi/curve-dao-contracts/blob/master/contracts/Minter.vy
# This contract is an almost-identical fork of Curve's contract

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 initialize(_token: address, _controller: address):
    assert self.token == ZERO_ADDRESS, "already initialized"

    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 ABI

[{"name":"Minted","inputs":[{"name":"recipient","type":"address","indexed":true},{"name":"gauge","type":"address","indexed":false},{"name":"minted","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"function","name":"initialize","inputs":[{"name":"_token","type":"address"},{"name":"_controller","type":"address"}],"outputs":[],"gas":76092},{"stateMutability":"nonpayable","type":"function","name":"mint","inputs":[{"name":"gauge_addr","type":"address"}],"outputs":[],"gas":112502},{"stateMutability":"nonpayable","type":"function","name":"mint_many","inputs":[{"name":"gauge_addrs","type":"address[8]"}],"outputs":[],"gas":499362},{"stateMutability":"nonpayable","type":"function","name":"mint_for","inputs":[{"name":"gauge_addr","type":"address"},{"name":"_for","type":"address"}],"outputs":[],"gas":115095},{"stateMutability":"nonpayable","type":"function","name":"toggle_approve_mint","inputs":[{"name":"minting_user","type":"address"}],"outputs":[],"gas":38081},{"stateMutability":"view","type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2610},{"stateMutability":"view","type":"function","name":"controller","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2640},{"stateMutability":"view","type":"function","name":"minted","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":3202},{"stateMutability":"view","type":"function","name":"allowed_to_mint_for","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"bool"}],"gas":3232}]

Block Transaction Difficulty 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
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.