Overview
ETH Balance
ETH Value
$0.00Latest 1 from a total of 1 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Set_reward_data | 903574 | 1551 days ago | IN | 0 ETH | 0.000738846296 ETH |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 72086421 | 999 days ago | 0 ETH | ||||
| 72086421 | 999 days ago | 0 ETH | ||||
| 72086421 | 999 days ago | 0 ETH | ||||
| 72066955 | 999 days ago | 0 ETH | ||||
| 72066955 | 999 days ago | 0 ETH | ||||
| 72066955 | 999 days ago | 0 ETH | ||||
| 72052084 | 999 days ago | 0 ETH | ||||
| 72052084 | 999 days ago | 0 ETH | ||||
| 72052084 | 999 days ago | 0 ETH | ||||
| 72020279 | 999 days ago | 0 ETH | ||||
| 72020279 | 999 days ago | 0 ETH | ||||
| 72020279 | 999 days ago | 0 ETH | ||||
| 72001526 | 999 days ago | 0 ETH | ||||
| 72001526 | 999 days ago | 0 ETH | ||||
| 72001526 | 999 days ago | 0 ETH | ||||
| 71982019 | 999 days ago | 0 ETH | ||||
| 71982019 | 999 days ago | 0 ETH | ||||
| 71982019 | 999 days ago | 0 ETH | ||||
| 71964490 | 999 days ago | 0 ETH | ||||
| 71964490 | 999 days ago | 0 ETH | ||||
| 71964490 | 999 days ago | 0 ETH | ||||
| 71948984 | 999 days ago | 0 ETH | ||||
| 71948984 | 999 days ago | 0 ETH | ||||
| 71948984 | 999 days ago | 0 ETH | ||||
| 71924209 | 999 days ago | 0 ETH |
Cross-Chain Transactions
Contract Source Code Verified (Exact Match)
Contract Source Code (Vyper language format)
# @version 0.2.16
"""
@title RewardClaimer
@author Curve.Fi
@license MIT
@notice Passthrough to allow claiming from multiple reward streamers
"""
from vyper.interfaces import ERC20
interface RewardStream:
def get_reward(): nonpayable
struct RewardData:
claim: address
reward: address
owner: public(address)
future_owner: public(address)
reward_receiver: public(address)
reward_data: public(RewardData[4])
@external
def __init__(_owner: address, _reward_receiver: address):
"""
@notice Contract constructor
@param _owner Owner address
@param _reward_receiver Reward receiver address
"""
self.owner = _owner
self.reward_receiver = _reward_receiver
@external
def get_reward():
"""
@notice Claim all available rewards
@dev Only callable by the reward receiver
"""
assert msg.sender == self.reward_receiver
for i in range(4):
data: RewardData = self.reward_data[i]
if data.reward == ZERO_ADDRESS:
break
RewardStream(data.claim).get_reward()
amount: uint256 = ERC20(data.reward).balanceOf(self)
if amount > 0:
assert ERC20(data.reward).transfer(msg.sender, amount)
@external
def set_reward_data(_idx: uint256, _claim: address, _reward: address):
"""
@notice Set data about a reward streamer
@dev Only callable by the owner
@param _idx Index of `reward_data` to modify
@param _claim Address of the streamer to claim from
@param _reward Address of the reward token
"""
assert msg.sender == self.owner
self.reward_data[_idx] = RewardData({claim: _claim, reward: _reward})
@external
def commit_transfer_ownership(_owner: address):
"""
@notice Initiate ownership tansfer of the contract
@param _owner Address to have ownership transferred to
"""
assert msg.sender == self.owner # dev: only owner
self.future_owner = _owner
@external
def accept_transfer_ownership():
"""
@notice Accept a pending ownership transfer
"""
owner: address = self.future_owner
assert msg.sender == owner # dev: only new owner
self.owner = ownerContract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_owner","type":"address"},{"name":"_reward_receiver","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"get_reward","inputs":[],"outputs":[],"gas":59976},{"stateMutability":"nonpayable","type":"function","name":"set_reward_data","inputs":[{"name":"_idx","type":"uint256"},{"name":"_claim","type":"address"},{"name":"_reward","type":"address"}],"outputs":[],"gas":72780},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_ownership","inputs":[{"name":"_owner","type":"address"}],"outputs":[],"gas":37605},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_ownership","inputs":[],"outputs":[],"gas":37550},{"stateMutability":"view","type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2508},{"stateMutability":"view","type":"function","name":"future_owner","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2538},{"stateMutability":"view","type":"function","name":"reward_receiver","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2568},{"stateMutability":"view","type":"function","name":"reward_data","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"claim","type":"address"},{"name":"reward","type":"address"}],"gas":5033}]Contract Creation Code
60406102cf6101403960206102cf60c03960c05160a01c6102ca57602060206102cf0160c03960c05160a01c6102ca5761014051600055610160516002556102b256600436101561000d57610265565b600035601c526000513461026b57631afe22a68114156101345760025433141561026b5761014060006004818352015b610160600261014051600481101561026b5702600301805482526001810154826020015250506101805161007057610130565b610160513b1561026b57600060006004631afe22a66101a0526101bc6000610160515af11561026b57602061024060246370a082316101c052306101e0526101dc610180515afa1561026b57601f3d111561026b57600050610240516101a05260006101a051111561011f576020610260604463a9059cbb6101c052336101e0526101a051610200526101dc6000610180515af11561026b57601f3d111561026b57600050610260511561026b575b5b815160010180835281141561003d575b5050005b638de099988114156101805760243560a01c61026b5760443560a01c61026b5760005433141561026b576002600435600481101561026b57026003016024358155604435600182015550005b636b441a408114156101a85760043560a01c61026b5760005433141561026b57600435600155005b63e5ea47b88114156101cf57600154610140526101405133141561026b5761014051600055005b638da5cb5b8114156101e75760005460005260206000f35b631ec0cdc18114156101ff5760015460005260206000f35b63b618ba628114156102175760025460005260206000f35b6393af73ed811415610263576002600435600481101561026b5702600301610140808080845481525050602081019050808060018501548152505060409050905060c05260c051610140f35b505b60006000fd5b600080fd5b6100426102b2036100426000396100426102b2036000f35b600080fd0000000000000000000000007eeac6cddbd1d0b8af061742d41877d7f707289a000000000000000000000000bf7e49483881c76487b0989cd7d9a8239b20ca41
Deployed Bytecode
0x600436101561000d57610265565b600035601c526000513461026b57631afe22a68114156101345760025433141561026b5761014060006004818352015b610160600261014051600481101561026b5702600301805482526001810154826020015250506101805161007057610130565b610160513b1561026b57600060006004631afe22a66101a0526101bc6000610160515af11561026b57602061024060246370a082316101c052306101e0526101dc610180515afa1561026b57601f3d111561026b57600050610240516101a05260006101a051111561011f576020610260604463a9059cbb6101c052336101e0526101a051610200526101dc6000610180515af11561026b57601f3d111561026b57600050610260511561026b575b5b815160010180835281141561003d575b5050005b638de099988114156101805760243560a01c61026b5760443560a01c61026b5760005433141561026b576002600435600481101561026b57026003016024358155604435600182015550005b636b441a408114156101a85760043560a01c61026b5760005433141561026b57600435600155005b63e5ea47b88114156101cf57600154610140526101405133141561026b5761014051600055005b638da5cb5b8114156101e75760005460005260206000f35b631ec0cdc18114156101ff5760015460005260206000f35b63b618ba628114156102175760025460005260206000f35b6393af73ed811415610263576002600435600481101561026b5702600301610140808080845481525050602081019050808060018501548152505060409050905060c05260c051610140f35b505b60006000fd5b600080fd
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007eeac6cddbd1d0b8af061742d41877d7f707289a000000000000000000000000bf7e49483881c76487b0989cd7d9a8239b20ca41
-----Decoded View---------------
Arg [0] : _owner (address): 0x7EeAC6CDdbd1D0B8aF061742D41877D7F707289a
Arg [1] : _reward_receiver (address): 0xbF7E49483881C76487b0989CD7d9A8239B20CA41
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007eeac6cddbd1d0b8af061742d41877d7f707289a
Arg [1] : 000000000000000000000000bf7e49483881c76487b0989cd7d9a8239b20ca41
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.