ETH Price: $1,592.96 (-1.91%)
Gas: 7 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multi Chain

Multichain Addresses

1 address found via
Transaction Hash
Method
Block
From
To
Value
Distribute170202402023-04-10 20:48:47164 days 9 hrs ago1681159727IN
Idle.finance: Distributor Proxy
0 ETH0.0118034526
Distribute169724822023-04-04 2:02:23171 days 3 hrs ago1680573743IN
Idle.finance: Distributor Proxy
0 ETH0.0055201221
Distribute169060252023-03-25 17:41:35180 days 12 hrs ago1679766095IN
Idle.finance: Distributor Proxy
0 ETH0.008677530
Distribute168671902023-03-20 6:46:11185 days 23 hrs ago1679294771IN
Idle.finance: Distributor Proxy
0 ETH0.0038027213.97289435
Distribute168448392023-03-17 3:23:35189 days 2 hrs ago1679023415IN
Idle.finance: Distributor Proxy
0 ETH0.0081700219.52971726
Distribute168116432023-03-12 11:27:11193 days 18 hrs ago1678620431IN
Idle.finance: Distributor Proxy
0 ETH0.0057789719.63787778
Distribute167832202023-03-08 11:23:47197 days 18 hrs ago1678274627IN
Idle.finance: Distributor Proxy
0 ETH0.0049152620
Distribute167832142023-03-08 11:22:23197 days 18 hrs ago1678274543IN
Idle.finance: Distributor Proxy
0 ETH0.0048213520.25949331
Distribute167656142023-03-05 23:59:47200 days 5 hrs ago1678060787IN
Idle.finance: Distributor Proxy
0 ETH0.0075209725.32100616
Distribute167445342023-03-03 0:50:23203 days 4 hrs ago1677804623IN
Idle.finance: Distributor Proxy
0 ETH0.0083259728.03122966
Distribute167135452023-02-26 16:18:47207 days 13 hrs ago1677428327IN
Idle.finance: Distributor Proxy
0 ETH0.0057831922.00080088
Distribute166859082023-02-22 18:59:11211 days 10 hrs ago1677092351IN
Idle.finance: Distributor Proxy
0 ETH0.008668137
Distribute166819382023-02-22 5:33:47212 days 15 mins ago1677044027IN
Idle.finance: Distributor Proxy
0 ETH0.0074884528.48804315
Distribute166786672023-02-21 18:30:23212 days 11 hrs ago1677004223IN
Idle.finance: Distributor Proxy
0 ETH0.0089011237
Distribute165605242023-02-05 5:34:11229 days 15 mins ago1675575251IN
Idle.finance: Distributor Proxy
0 ETH0.0051627817.54396454
Distribute165065762023-01-28 16:41:35236 days 13 hrs ago1674924095IN
Idle.finance: Distributor Proxy
0 ETH0.0037881414.10996218
Distribute165042632023-01-28 8:56:59236 days 20 hrs ago1674896219IN
Idle.finance: Distributor Proxy
0 ETH0.0041425114.18174063
Distribute164684842023-01-23 9:03:35241 days 20 hrs ago1674464615IN
Idle.finance: Distributor Proxy
0 ETH0.0046923615.36027825
Distribute164539342023-01-21 8:19:11243 days 21 hrs ago1674289151IN
Idle.finance: Distributor Proxy
0 ETH0.0039746415.811761
Distribute164537222023-01-21 7:36:35243 days 22 hrs ago1674286595IN
Idle.finance: Distributor Proxy
0 ETH0.0050920216.35325346
Distribute164536342023-01-21 7:18:47243 days 22 hrs ago1674285527IN
Idle.finance: Distributor Proxy
0 ETH0.005024316.47189232
Distribute164333972023-01-18 11:29:23246 days 18 hrs ago1674041363IN
Idle.finance: Distributor Proxy
0 ETH0.009561518.35197533
Distribute164333912023-01-18 11:28:11246 days 18 hrs ago1674041291IN
Idle.finance: Distributor Proxy
0 ETH0.0100243618.74004574
Distribute164326332023-01-18 8:56:23246 days 20 hrs ago1674032183IN
Idle.finance: Distributor Proxy
0 ETH0.0043862117.44965584
Distribute164324842023-01-18 8:26:11246 days 21 hrs ago1674030371IN
Idle.finance: Distributor Proxy
0 ETH0.0047828717.81569143
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vyper_contract

Compiler Version
vyper:0.2.15

Optimization Enabled:
N/A

Other Settings:
MIT license

Contract Source Code (Vyper language format)

# @version 0.2.15
"""
@title DistributorProxy
@author This version was modified starting from Curve Finance's DAO contracts
@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 Distributor:
    def distribute(_to: address, _value: uint256) -> bool: nonpayable

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


event Distributed:
    recipient: indexed(address)
    gauge: address
    distributed: uint256


distributor: public(address)
controller: public(address)

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

# distributor -> user -> can distribute?
allowed_to_distribute_for: public(HashMap[address, HashMap[address, bool]])


@external
def __init__(_distributor: address, _controller: address):
    self.distributor = _distributor
    self.controller = _controller


@internal
def _distribute_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_distribute: uint256 = LiquidityGauge(gauge_addr).integrate_fraction(_for)
    to_distribute: uint256 = total_distribute - self.distributed[_for][gauge_addr]

    if to_distribute != 0:
        Distributor(self.distributor).distribute(_for, to_distribute)
        self.distributed[_for][gauge_addr] = total_distribute

        log Distributed(_for, gauge_addr, total_distribute)


@external
@nonreentrant('lock')
def distribute(gauge_addr: address):
    """
    @notice Distribute everything which belongs to `msg.sender`
    @param gauge_addr `LiquidityGauge` address to get distributable amount from
    """
    self._distribute_for(gauge_addr, msg.sender)


@external
@nonreentrant('lock')
def distribute_many(gauge_addrs: address[8]):
    """
    @notice Distribute 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._distribute_for(gauge_addrs[i], msg.sender)


@external
@nonreentrant('lock')
def distribute_for(gauge_addr: address, _for: address):
    """
    @notice Distribute tokens for `_for`
    @dev Only possible when `msg.sender` has been approved via `toggle_approve_distribute`
    @param gauge_addr `LiquidityGauge` address to get distributable amount from
    @param _for Address to distribute to
    """
    if self.allowed_to_distribute_for[msg.sender][_for]:
        self._distribute_for(gauge_addr, _for)


@external
def toggle_approve_distribute(distributing_user: address):
    """
    @notice allow `distributing_user` to distribute for `msg.sender`
    @param distributing_user Address to toggle permission for
    """
    self.allowed_to_distribute_for[distributing_user][msg.sender] = not self.allowed_to_distribute_for[distributing_user][msg.sender]

Contract Security Audit

Contract ABI

[{"name":"Distributed","inputs":[{"name":"recipient","type":"address","indexed":true},{"name":"gauge","type":"address","indexed":false},{"name":"distributed","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_distributor","type":"address"},{"name":"_controller","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"distribute","inputs":[{"name":"gauge_addr","type":"address"}],"outputs":[],"gas":112051},{"stateMutability":"nonpayable","type":"function","name":"distribute_many","inputs":[{"name":"gauge_addrs","type":"address[8]"}],"outputs":[],"gas":495727},{"stateMutability":"nonpayable","type":"function","name":"distribute_for","inputs":[{"name":"gauge_addr","type":"address"},{"name":"_for","type":"address"}],"outputs":[],"gas":114593},{"stateMutability":"nonpayable","type":"function","name":"toggle_approve_distribute","inputs":[{"name":"distributing_user","type":"address"}],"outputs":[],"gas":37994},{"stateMutability":"view","type":"function","name":"distributor","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":"distributed","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":2998},{"stateMutability":"view","type":"function","name":"allowed_to_distribute_for","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"bool"}],"gas":3028}]

60406104c56101403960206104c560c03960c05160a01c6104c057602060206104c50160c03960c05160a01c6104c05761014051600355610160516004556104a856600436101561000d576102b8565b600035601c5260005134610461576363453ae18114156100645760005461046157600160005560043560a01c610461576004356101405233610160526101605161014051600658016102be565b6000506000600055005b6310833ce281141561012b576001546104615760016001556000610120525b610120516004013560a01c6104615760206101205101610120526101006101205110156100af57610083565b61014060006008818352015b60046101405160088110156104615760200201356100d857610122565b6101405160046101405160088110156104615760200201356101605233610180526101805161016051600658016102be565b610140526000505b81516001018083528114156100bb575b50506000600155005b6325c8d91e8114156101a35760025461046157600160025560043560a01c6104615760243560a01c6104615760063360e05260c052604060c02060243560e05260c052604060c020541561019c5760043561014052602435610160526101605161014051600658016102be565b6000505b6000600255005b637c6cc9808114156101f65760043560a01c61046157600660043560e05260c052604060c0203360e05260c052604060c0205415600660043560e05260c052604060c0203360e05260c052604060c02055005b63bfe1092881141561020e5760035460005260206000f35b63f77c47918114156102265760045460005260206000f35b638d09ef3381141561026e5760043560a01c6104615760243560a01c61046157600560043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b639c058f2f8114156102b65760043560a01c6104615760243560a01c61046157600660043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b505b60006000fd5b610180526101405261016052600060206102206024633f9095b76101a052610140516101c0526101bc6004545afa1561046157601f3d11156104615760005061022051126104615760206102206024634b8200936101a052610160516101c0526101bc6000610140515af11561046157601f3d111561046157600050610220506020610240602463094007076101c052610160516101e0526101dc610140515afa1561046157601f3d111561046157600050610240516101a0526101a05160056101605160e05260c052604060c0206101405160e05260c052604060c0205480821061046157808203905090506101c05260006101c051181561045b576020610280604463fb9321086101e05261016051610200526101c051610220526101fc60006003545af11561046157601f3d111561046157600050610280506101a05160056101605160e05260c052604060c0206101405160e05260c052604060c02055610140516101e0526101a05161020052610160517fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd4354260406101e0a25b61018051565b600080fd5b6100426104a8036100426000396100426104a8036000f35b600080fd0000000000000000000000001276a8ee84900bd8cca6e9b3ccb99ff4771fe329000000000000000000000000ac69078141f76a1e257ee889920d02cc547d632f

Deployed Bytecode

0x600436101561000d576102b8565b600035601c5260005134610461576363453ae18114156100645760005461046157600160005560043560a01c610461576004356101405233610160526101605161014051600658016102be565b6000506000600055005b6310833ce281141561012b576001546104615760016001556000610120525b610120516004013560a01c6104615760206101205101610120526101006101205110156100af57610083565b61014060006008818352015b60046101405160088110156104615760200201356100d857610122565b6101405160046101405160088110156104615760200201356101605233610180526101805161016051600658016102be565b610140526000505b81516001018083528114156100bb575b50506000600155005b6325c8d91e8114156101a35760025461046157600160025560043560a01c6104615760243560a01c6104615760063360e05260c052604060c02060243560e05260c052604060c020541561019c5760043561014052602435610160526101605161014051600658016102be565b6000505b6000600255005b637c6cc9808114156101f65760043560a01c61046157600660043560e05260c052604060c0203360e05260c052604060c0205415600660043560e05260c052604060c0203360e05260c052604060c02055005b63bfe1092881141561020e5760035460005260206000f35b63f77c47918114156102265760045460005260206000f35b638d09ef3381141561026e5760043560a01c6104615760243560a01c61046157600560043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b639c058f2f8114156102b65760043560a01c6104615760243560a01c61046157600660043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b505b60006000fd5b610180526101405261016052600060206102206024633f9095b76101a052610140516101c0526101bc6004545afa1561046157601f3d11156104615760005061022051126104615760206102206024634b8200936101a052610160516101c0526101bc6000610140515af11561046157601f3d111561046157600050610220506020610240602463094007076101c052610160516101e0526101dc610140515afa1561046157601f3d111561046157600050610240516101a0526101a05160056101605160e05260c052604060c0206101405160e05260c052604060c0205480821061046157808203905090506101c05260006101c051181561045b576020610280604463fb9321086101e05261016051610200526101c051610220526101fc60006003545af11561046157601f3d111561046157600050610280506101a05160056101605160e05260c052604060c0206101405160e05260c052604060c02055610140516101e0526101a05161020052610160517fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd4354260406101e0a25b61018051565b600080fd

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

0000000000000000000000001276a8ee84900bd8cca6e9b3ccb99ff4771fe329000000000000000000000000ac69078141f76a1e257ee889920d02cc547d632f

-----Decoded View---------------
Arg [0] : _distributor (address): 0x1276A8ee84900bD8CcA6e9b3ccB99FF4771Fe329
Arg [1] : _controller (address): 0xaC69078141f76A1e257Ee889920d02Cc547d632f

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000001276a8ee84900bd8cca6e9b3ccb99ff4771fe329
Arg [1] : 000000000000000000000000ac69078141f76a1e257ee889920d02cc547d632f


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.