BTT Price: $0.0000004 (-1.64%)
Gas: 0 Gwei

Contract

0xD2ecA9a35DCc4bA215D0D95677aA4D76aA7450F9

Overview

BTT Balance

Bittorent Chain LogoBittorent Chain LogoBittorent Chain Logo0 BTT

BTT Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Toggle_approve_m...597780362025-11-07 16:35:4479 days ago1762533344IN
0xD2ecA9a3...6aA7450F9
0 BTT6.726500,000
Toggle_approve_m...569735372025-09-01 17:51:06146 days ago1756749066IN
0xD2ecA9a3...6aA7450F9
0 BTT22.0015500,000
Toggle_approve_m...403896942024-08-01 1:35:47542 days ago1722476147IN
0xD2ecA9a3...6aA7450F9
0 BTT13.2009300,000
Toggle_approve_m...403896302024-08-01 1:33:35542 days ago1722476015IN
0xD2ecA9a3...6aA7450F9
0 BTT4.0356300,000
Toggle_approve_m...391035442024-07-01 8:41:06573 days ago1719823266IN
0xD2ecA9a3...6aA7450F9
0 BTT13.2009300,000
Toggle_approve_m...386196972024-06-19 19:28:52584 days ago1718825332IN
0xD2ecA9a3...6aA7450F9
0 BTT13.2009300,000
Toggle_approve_m...364641802024-04-29 8:30:04636 days ago1714379404IN
0xD2ecA9a3...6aA7450F9
0 BTT4.15334184308,752.73910312
Toggle_approve_m...356576822024-04-10 2:22:26655 days ago1712715746IN
0xD2ecA9a3...6aA7450F9
0 BTT6.726500,000
Toggle_approve_m...356576692024-04-10 2:22:00655 days ago1712715720IN
0xD2ecA9a3...6aA7450F9
0 BTT22.0015500,000
Toggle_approve_m...325275472024-01-26 9:01:20730 days ago1706259680IN
0xD2ecA9a3...6aA7450F9
0 BTT6.0907434452,776.04889311
Toggle_approve_m...324316222024-01-24 2:03:58732 days ago1706061838IN
0xD2ecA9a3...6aA7450F9
0 BTT13.2009300,000
Toggle_approve_m...318647922024-01-10 13:19:02746 days ago1704892742IN
0xD2ecA9a3...6aA7450F9
0 BTT13.420915305,000
Toggle_approve_m...317541722024-01-07 21:56:26748 days ago1704664586IN
0xD2ecA9a3...6aA7450F9
0 BTT6.726500,000
Toggle_approve_m...317541542024-01-07 21:55:50748 days ago1704664550IN
0xD2ecA9a3...6aA7450F9
0 BTT22.0015500,000
Toggle_approve_m...312071522023-12-25 20:32:38761 days ago1703536358IN
0xD2ecA9a3...6aA7450F9
0 BTT13.2009300,000
Toggle_approve_m...312071432023-12-25 20:32:20761 days ago1703536340IN
0xD2ecA9a3...6aA7450F9
0 BTT4.0356300,000
Toggle_approve_m...311710172023-12-24 23:50:32762 days ago1703461832IN
0xD2ecA9a3...6aA7450F9
0 BTT4.0356300,000
Toggle_approve_m...311709922023-12-24 23:49:38762 days ago1703461778IN
0xD2ecA9a3...6aA7450F9
0 BTT15.84108360,000
Toggle_approve_m...311709832023-12-24 23:49:20762 days ago1703461760IN
0xD2ecA9a3...6aA7450F9
0 BTT4.84272360,000
Toggle_approve_m...311709712023-12-24 23:48:56762 days ago1703461736IN
0xD2ecA9a3...6aA7450F9
0 BTT13.860945315,000
Toggle_approve_m...311709562023-12-24 23:48:26762 days ago1703461706IN
0xD2ecA9a3...6aA7450F9
0 BTT4.0356300,000
Toggle_approve_m...304840042023-12-08 14:14:02779 days ago1702044842IN
0xD2ecA9a3...6aA7450F9
0 BTT22.0015500,000
Toggle_approve_m...304015482023-12-06 14:59:38781 days ago1701874778IN
0xD2ecA9a3...6aA7450F9
0 BTT4.0356300,000
Toggle_approve_m...304015002023-12-06 14:57:58781 days ago1701874678IN
0xD2ecA9a3...6aA7450F9
0 BTT13.2009300,000
Toggle_approve_m...298169742023-11-22 16:04:54795 days ago1700669094IN
0xD2ecA9a3...6aA7450F9
0 BTT4.7082350,000
View all transactions

View more zero value Internal Transactions in Advanced View mode

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

Contract Source Code Verified (Exact Match)

Contract Name:
Token Minter

Compiler Version
vyper:0.2.12

Optimization Enabled:
N/A

Other Settings:
default evmVersion, None license

Contract Source Code (Vyper language format)

# @version 0.2.12
"""
@title Token Minter
@author FilDA
@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


treasury: 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__(_treasury: address, _controller: address):
    self.treasury = _treasury
    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.treasury).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":[{"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":"constructor","inputs":[{"name":"_treasury","type":"address"},{"name":"_controller","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"mint","inputs":[{"name":"gauge_addr","type":"address"}],"outputs":[],"gas":112051},{"stateMutability":"nonpayable","type":"function","name":"mint_many","inputs":[{"name":"gauge_addrs","type":"address[8]"}],"outputs":[],"gas":495727},{"stateMutability":"nonpayable","type":"function","name":"mint_for","inputs":[{"name":"gauge_addr","type":"address"},{"name":"_for","type":"address"}],"outputs":[],"gas":114593},{"stateMutability":"nonpayable","type":"function","name":"toggle_approve_mint","inputs":[{"name":"minting_user","type":"address"}],"outputs":[],"gas":37994},{"stateMutability":"view","type":"function","name":"treasury","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2508},{"stateMutability":"view","type":"function","name":"controller","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2538},{"stateMutability":"view","type":"function","name":"minted","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":2998},{"stateMutability":"view","type":"function","name":"allowed_to_mint_for","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"bool"}],"gas":3028}]

604061054b61014039602061054b60c03960c05160a01c1561002057600080fd5b6020602061054b0160c03960c05160a01c1561003b57600080fd5b610140516000556101605160015561053356600436101561000d57610310565b600035601c52600051341561002157600080fd5b636a627842811415610076576004541561003a57600080fd5b600160045560043560a01c1561004f57600080fd5b600435610140523361016052610160516101405160065801610316565b6000506000600455005b63a51e1904811415610153576004541561008f57600080fd5b60016004556000610120525b610120516004013560a01c156100b057600080fd5b60206101205101610120526101006101205110156100cd5761009b565b61014060006008818352015b600461014051600881106100ec57600080fd5b602002013515156100fc5761014a565b610140516004610140516008811061011357600080fd5b6020020135610160523361018052610180516101605160065801610316565b610140526000505b81516001018083528114156100d9575b50506000600455005b6327f18ae38114156101dd576004541561016c57600080fd5b600160045560043560a01c1561018157600080fd5b60243560a01c1561019157600080fd5b60033360e05260c052604060c02060243560e05260c052604060c02054156101d6576004356101405260243561016052610160516101405160065801610316565b6000505b6000600455005b63dd289d608114156102365760043560a01c156101f957600080fd5b600360043560e05260c052604060c0203360e05260c052604060c0205415600360043560e05260c052604060c0203360e05260c052604060c02055005b6361d027b381141561024e5760005460005260206000f35b63f77c47918114156102665760015460005260206000f35b638b752bb08114156102ba5760043560a01c1561028257600080fd5b60243560a01c1561029257600080fd5b600260043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b63a099003381141561030e5760043560a01c156102d657600080fd5b60243560a01c156102e657600080fd5b600360043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b505b60006000fd5b610180526101405261016052600060206102206024633f9095b76101a052610140516101c0526101bc6001545afa61034d57600080fd5b601f3d1161035a57600080fd5b60005061022051121561036c57600080fd5b60206102206024634b8200936101a052610160516101c0526101bc6000610140515af161039857600080fd5b601f3d116103a557600080fd5b600050610220506020610240602463094007076101c052610160516101e0526101dc610140515afa6103d657600080fd5b601f3d116103e357600080fd5b600050610240516101a0526101a05160026101605160e05260c052604060c0206101405160e05260c052604060c020548082101561042057600080fd5b808203905090506101c05260006101c05118156104df57602061028060446340c10f196101e05261016051610200526101c051610220526101fc60006000545af161046a57600080fd5b601f3d1161047757600080fd5b600050610280506101a05160026101605160e05260c052604060c0206101405160e05260c052604060c02055610140516101e0526101a05161020052610160517f9d228d69b5fdb8d273a2336f8fb8612d039631024ea9bf09c424a9503aa078f060406101e0a25b61018051565b61004e6105330361004e60003961004e610533036000f3000000000000000000000000d6e3300fda76fcc16c97822c3ee1a9c5421e97b8000000000000000000000000e0f5a13bd828bb04d1265ed815fee2fb292bae32

Deployed Bytecode

0x600436101561000d57610310565b600035601c52600051341561002157600080fd5b636a627842811415610076576004541561003a57600080fd5b600160045560043560a01c1561004f57600080fd5b600435610140523361016052610160516101405160065801610316565b6000506000600455005b63a51e1904811415610153576004541561008f57600080fd5b60016004556000610120525b610120516004013560a01c156100b057600080fd5b60206101205101610120526101006101205110156100cd5761009b565b61014060006008818352015b600461014051600881106100ec57600080fd5b602002013515156100fc5761014a565b610140516004610140516008811061011357600080fd5b6020020135610160523361018052610180516101605160065801610316565b610140526000505b81516001018083528114156100d9575b50506000600455005b6327f18ae38114156101dd576004541561016c57600080fd5b600160045560043560a01c1561018157600080fd5b60243560a01c1561019157600080fd5b60033360e05260c052604060c02060243560e05260c052604060c02054156101d6576004356101405260243561016052610160516101405160065801610316565b6000505b6000600455005b63dd289d608114156102365760043560a01c156101f957600080fd5b600360043560e05260c052604060c0203360e05260c052604060c0205415600360043560e05260c052604060c0203360e05260c052604060c02055005b6361d027b381141561024e5760005460005260206000f35b63f77c47918114156102665760015460005260206000f35b638b752bb08114156102ba5760043560a01c1561028257600080fd5b60243560a01c1561029257600080fd5b600260043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b63a099003381141561030e5760043560a01c156102d657600080fd5b60243560a01c156102e657600080fd5b600360043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b505b60006000fd5b610180526101405261016052600060206102206024633f9095b76101a052610140516101c0526101bc6001545afa61034d57600080fd5b601f3d1161035a57600080fd5b60005061022051121561036c57600080fd5b60206102206024634b8200936101a052610160516101c0526101bc6000610140515af161039857600080fd5b601f3d116103a557600080fd5b600050610220506020610240602463094007076101c052610160516101e0526101dc610140515afa6103d657600080fd5b601f3d116103e357600080fd5b600050610240516101a0526101a05160026101605160e05260c052604060c0206101405160e05260c052604060c020548082101561042057600080fd5b808203905090506101c05260006101c05118156104df57602061028060446340c10f196101e05261016051610200526101c051610220526101fc60006000545af161046a57600080fd5b601f3d1161047757600080fd5b600050610280506101a05160026101605160e05260c052604060c0206101405160e05260c052604060c02055610140516101e0526101a05161020052610160517f9d228d69b5fdb8d273a2336f8fb8612d039631024ea9bf09c424a9503aa078f060406101e0a25b6101805156

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

000000000000000000000000d6e3300fda76fcc16c97822c3ee1a9c5421e97b8000000000000000000000000e0f5a13bd828bb04d1265ed815fee2fb292bae32

-----Decoded View---------------
Arg [0] : _treasury (address): 0xd6E3300FDA76fcC16C97822c3EE1a9c5421e97b8
Arg [1] : _controller (address): 0xe0f5A13Bd828bB04d1265eD815Fee2Fb292Bae32

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000d6e3300fda76fcc16c97822c3ee1a9c5421e97b8
Arg [1] : 000000000000000000000000e0f5a13bd828bb04d1265ed815fee2fb292bae32


Block Transaction Gas Used Reward
view all blocks produced

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