Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Multi Chain
Multichain Addresses
1 address found via
Latest 25 from a total of 217 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Distribute | 17020240 | 164 days 9 hrs ago | IN | 0 ETH | 0.01180345 | ||||
Distribute | 16972482 | 171 days 3 hrs ago | IN | 0 ETH | 0.00552012 | ||||
Distribute | 16906025 | 180 days 12 hrs ago | IN | 0 ETH | 0.0086775 | ||||
Distribute | 16867190 | 185 days 23 hrs ago | IN | 0 ETH | 0.00380272 | ||||
Distribute | 16844839 | 189 days 2 hrs ago | IN | 0 ETH | 0.00817002 | ||||
Distribute | 16811643 | 193 days 18 hrs ago | IN | 0 ETH | 0.00577897 | ||||
Distribute | 16783220 | 197 days 18 hrs ago | IN | 0 ETH | 0.00491526 | ||||
Distribute | 16783214 | 197 days 18 hrs ago | IN | 0 ETH | 0.00482135 | ||||
Distribute | 16765614 | 200 days 5 hrs ago | IN | 0 ETH | 0.00752097 | ||||
Distribute | 16744534 | 203 days 4 hrs ago | IN | 0 ETH | 0.00832597 | ||||
Distribute | 16713545 | 207 days 13 hrs ago | IN | 0 ETH | 0.00578319 | ||||
Distribute | 16685908 | 211 days 10 hrs ago | IN | 0 ETH | 0.0086681 | ||||
Distribute | 16681938 | 212 days 15 mins ago | IN | 0 ETH | 0.00748845 | ||||
Distribute | 16678667 | 212 days 11 hrs ago | IN | 0 ETH | 0.00890112 | ||||
Distribute | 16560524 | 229 days 15 mins ago | IN | 0 ETH | 0.00516278 | ||||
Distribute | 16506576 | 236 days 13 hrs ago | IN | 0 ETH | 0.00378814 | ||||
Distribute | 16504263 | 236 days 20 hrs ago | IN | 0 ETH | 0.00414251 | ||||
Distribute | 16468484 | 241 days 20 hrs ago | IN | 0 ETH | 0.00469236 | ||||
Distribute | 16453934 | 243 days 21 hrs ago | IN | 0 ETH | 0.00397464 | ||||
Distribute | 16453722 | 243 days 22 hrs ago | IN | 0 ETH | 0.00509202 | ||||
Distribute | 16453634 | 243 days 22 hrs ago | IN | 0 ETH | 0.0050243 | ||||
Distribute | 16433397 | 246 days 18 hrs ago | IN | 0 ETH | 0.0095615 | ||||
Distribute | 16433391 | 246 days 18 hrs ago | IN | 0 ETH | 0.01002436 | ||||
Distribute | 16432633 | 246 days 20 hrs ago | IN | 0 ETH | 0.00438621 | ||||
Distribute | 16432484 | 246 days 21 hrs ago | IN | 0 ETH | 0.00478287 |
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
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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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}]
Contract Creation Code
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
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ 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.