Contract 0xD7FAD3bd59D6477cbe1BE7f646F7f1BA25b230f8 6

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xda0bb268c70d47b0b2bca617db6afacdcc70f8967a6983a30af4ed20b5a7480a0x6020610e97569742022-04-13 19:26:43169 days 19 hrs ago0x3d64fb8a2ffd08c186e8060aa57c8011d8b999cc IN  Create: Vyper_contract0 ETH0.005831565095 ETH
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xf5b883f834a0a39882478285aedfb97a6713d590f3ec5993633d3bae6672bbed276254182022-09-30 15:11:234 mins ago 0xbd65449babf09be544d68fc7ccf0cebe298fb214 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0xba59cbd67c8c708444a39e2aafd514dc5a2fced48ee48e39a80d8e3fc525c9fc276124832022-09-30 14:01:051 hr 14 mins ago 0x4b1137789ff06406a72bace67cd15cf6786844cc 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0xc0f12577704adafc315c2d44dee641e782dfde55a0d74c8afe9550ad21d3e8ca276124442022-09-30 14:00:551 hr 14 mins ago 0xd84d832f47c22cf5413ae4fe2bd9d220fe6e3dc6 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0x30c3a4eeefc6b8e806752adec0dfaa4a190edc65283e35dbcf511698b1bf6e32276048352022-09-30 13:16:261 hr 59 mins ago 0x7c1028bcde7ca03ecf6daaa9cbfa06e931913ead 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0xf422a0afef60324fa7f436a483a4f5ec6545d512b6a4e318295fa5f8787d2414276011712022-09-30 12:54:582 hrs 20 mins ago 0x4b1137789ff06406a72bace67cd15cf6786844cc 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0x832ffbb9412ddaf2b0468244baeabdb5a9eb28c175e12ac54ed00391c38e52c5275950492022-09-30 12:24:392 hrs 51 mins ago 0xd84d832f47c22cf5413ae4fe2bd9d220fe6e3dc6 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0x39548c45e45e038fc3aa6f42983674d461b364d809adb5e650a37ae713a7c13a275918242022-09-30 12:00:393 hrs 15 mins ago 0x7c1028bcde7ca03ecf6daaa9cbfa06e931913ead 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0xbe6ec0987398b804d098fbdaa17379bca63aaafeb7525e7cb004647b5ecba6d0275683142022-09-30 9:10:016 hrs 5 mins ago 0xd84d832f47c22cf5413ae4fe2bd9d220fe6e3dc6 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0x9168c2e10145b261c6d4d2a0549e708c24beae3c026accadc1cc7e25f2b0a4b2275640972022-09-30 8:44:466 hrs 31 mins ago 0xd5cd8328d93bf4bef9824fd288f32c8f0da1c551 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0xcc85ef4041e8df03ae0c82fa15c5e4ad23ca4cc6eb47eaa4c369d92828ba0515275563262022-09-30 8:00:417 hrs 15 mins ago 0x7c1028bcde7ca03ecf6daaa9cbfa06e931913ead 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0x70e0fb1e6f3a954337cde582bfc4f9a00a555d56c99984d4c2f48f48a6d451fc275492682022-09-30 7:22:367 hrs 53 mins ago 0x4b1137789ff06406a72bace67cd15cf6786844cc 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0x6f6277a73a7fcd9d36072b7df6c75d025ca682456809bf74201278aa5f072a4f275457332022-09-30 7:01:348 hrs 14 mins ago 0xdc467db6abda75e62f4809f3a4934ae3aca1c380 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0x51ae08b73f7893f938723d9be12782a3915e46acef775ecf8d8057ff4b8938ba275433122022-09-30 6:47:118 hrs 28 mins ago 0x7c1028bcde7ca03ecf6daaa9cbfa06e931913ead 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0x62da7f8c9b969f2376e144c83769f73ee58bbbf28fbd9ce6d1855d09e036e879275353322022-09-30 5:53:319 hrs 22 mins ago 0x4b1137789ff06406a72bace67cd15cf6786844cc 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0xcce6eb2cdd98d4e73852fc9b2d74523b0da74824d829d8f7107b8772af2f3ee2275275532022-09-30 4:47:1610 hrs 28 mins ago 0x4b1137789ff06406a72bace67cd15cf6786844cc 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0xa5177f803ab375b115b084291a58998c65b0fe204d11196ce611b930130b71c7275190312022-09-30 3:35:2711 hrs 40 mins ago 0x4b1137789ff06406a72bace67cd15cf6786844cc 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0x0aff836da44586bd86a5650f13bd0eb3143dc95f84b4a843c3fa3351dea43714275106262022-09-30 2:29:3012 hrs 46 mins ago 0x4b1137789ff06406a72bace67cd15cf6786844cc 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0x6dfd138e55e6b313f2dd941b93a84c1fac04f4fdd016f86f9484e464d4617b15275093252022-09-30 2:18:2312 hrs 57 mins ago 0x7c1028bcde7ca03ecf6daaa9cbfa06e931913ead 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0xf32e2dbc13e96b019421d1f4266b675de8ac61b3abe68963f6892d531e51d10c275029892022-09-30 1:13:1514 hrs 2 mins ago 0x4b1137789ff06406a72bace67cd15cf6786844cc 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0x213190a863b2982998d53dd5eae6951a1df2793c6ce28b82131190787762fd4a274995572022-09-30 0:39:5414 hrs 35 mins ago 0xd84d832f47c22cf5413ae4fe2bd9d220fe6e3dc6 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0x9fa74ef39c9ddc682249b0828c4cb7f067097f795acadda6f47fbc5129df5ae0274937132022-09-29 23:34:3815 hrs 41 mins ago 0x4b1137789ff06406a72bace67cd15cf6786844cc 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0xcb77591396b2e122a3c2cbc6b1ff3ea975402ac6cbf840417fb90210aa7690f2274886322022-09-29 22:21:3816 hrs 54 mins ago 0xdc467db6abda75e62f4809f3a4934ae3aca1c380 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0xcdb9fbee9b3d1534b1ce6fa8aaab8a7c0dce539893530ad4649a9c534907c6f3274846382022-09-29 21:28:1117 hrs 47 mins ago 0x4b1137789ff06406a72bace67cd15cf6786844cc 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0x11d65884bb12585da7a8ab148d90d7d41a719f627ede56f827688b3416956950274770532022-09-29 19:58:1019 hrs 17 mins ago 0xd84d832f47c22cf5413ae4fe2bd9d220fe6e3dc6 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
0xe69b3968475fc2d408efa15ece7f9229914029db75e483a1f5f14107eca98838274707782022-09-29 18:51:3120 hrs 24 mins ago 0x4b1137789ff06406a72bace67cd15cf6786844cc 0xd7fad3bd59d6477cbe1be7f646f7f1ba25b230f80 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vyper_contract

Compiler Version
vyper:0.3.1

Optimization Enabled:
N/A

Other Settings:
, MIT license

Contract Source Code (Vyper language format)

# @version 0.3.1
"""
@title Child-Chain Streamer
@author Curve.Fi
@license MIT
@notice Evenly streams one or more reward tokens to a single recipient
"""

from vyper.interfaces import ERC20

event RewardDistributorUpdated:
    reward_token: indexed(address)
    distributor: address

event RewardDurationUpdated:
    reward_token: indexed(address)
    duration: uint256

struct RewardToken:
    distributor: address
    period_finish: uint256
    rate: uint256
    duration: uint256
    received: uint256
    paid: uint256

MAX_REWARDS: constant(uint256) = 8
WEEK: constant(uint256) = 7 * 86400

BAL_TOKEN: immutable(address)
AUTHORIZER_ADAPTOR: immutable(address)

# The reward receiver is actually immutable, but kept in storage due to this contract being used via proxies
reward_receiver: public(address)

reward_tokens: public(address[MAX_REWARDS])
reward_count: public(uint256)
reward_data: public(HashMap[address, RewardToken])
last_update_time: public(uint256)


@external
def __init__(_bal_token: address, _authorizerAdaptor: address):
    BAL_TOKEN = _bal_token
    AUTHORIZER_ADAPTOR = _authorizerAdaptor

    # prevent initialization of implementation
    self.reward_receiver = 0x000000000000000000000000000000000000dEaD


@internal
def _add_reward(_token: address, _distributor: address, _duration: uint256):
    """
    @notice Add a reward token
    @param _token Address of the reward token
    @param _distributor Address permitted to call `notify_reward_amount` for this token
    @param _duration Number of seconds that rewards of this token are streamed over
    """
    assert self.reward_data[_token].distributor == ZERO_ADDRESS, "Reward token already added"

    idx: uint256 = self.reward_count
    self.reward_tokens[idx] = _token
    self.reward_count = idx + 1
    self.reward_data[_token].distributor = _distributor
    self.reward_data[_token].duration = _duration
    log RewardDistributorUpdated(_token, _distributor)
    log RewardDurationUpdated(_token, _duration)


@external
def add_reward(_token: address, _distributor: address, _duration: uint256):
    """
    @notice Add a reward token
    @param _token Address of the reward token
    @param _distributor Address permitted to call `notify_reward_amount` for this token
    @param _duration Number of seconds that rewards of this token are streamed over
    """
    assert msg.sender == AUTHORIZER_ADAPTOR  # dev: owner only
    self._add_reward(_token, _distributor, _duration)

@external
def remove_reward(_token: address, _recipient: address):
    """
    @notice Remove a reward token
    @dev Any remaining balance of the reward token is transferred to the owner
    @param _token Address of the reward token
    @param _recipient Address to receive the removed tokens
    """
    assert msg.sender == AUTHORIZER_ADAPTOR  # dev: only owner
    assert self.reward_data[_token].distributor != ZERO_ADDRESS, "Reward token not added"

    self.reward_data[_token] = empty(RewardToken)
    amount: uint256 = ERC20(_token).balanceOf(self)
    response: Bytes[32] = raw_call(
        _token,
        concat(
            method_id("transfer(address,uint256)"),
            convert(_recipient, bytes32),
            convert(amount, bytes32),
        ),
        max_outsize=32,
    )
    if len(response) != 0:
        assert convert(response, bool)

    idx: uint256 = self.reward_count - 1
    for i in range(MAX_REWARDS):
        if self.reward_tokens[i] == _token:
            self.reward_tokens[i] = self.reward_tokens[idx]
            self.reward_tokens[idx] = ZERO_ADDRESS
            self.reward_count = idx
            log RewardDistributorUpdated(_token, ZERO_ADDRESS)
            log RewardDurationUpdated(_token, 0)
            return
    raise  # this should never be reached


@internal
def _update_reward(_token: address, _last_update: uint256):
    # update data about a reward and distribute any pending tokens to the receiver
    last_time: uint256 = min(block.timestamp, self.reward_data[_token].period_finish)
    if last_time > _last_update:
        amount: uint256 = (last_time - _last_update) * self.reward_data[_token].rate
        if amount > 0:
            self.reward_data[_token].paid += amount
            response: Bytes[32] = raw_call(
                _token,
                concat(
                    method_id("transfer(address,uint256)"),
                    convert(self.reward_receiver, bytes32),
                    convert(amount, bytes32),
                ),
                max_outsize=32,
            )
            if len(response) != 0:
                assert convert(response, bool)

@external
def get_reward():
    """
    @notice Claim pending rewards for `reward_receiver`
    """
    last_update: uint256 = self.last_update_time
    for token in self.reward_tokens:
        if token == ZERO_ADDRESS:
            break
        self._update_reward(token, last_update)
    self.last_update_time = block.timestamp


@external
def notify_reward_amount(_token: address):
    """
    @notice Notify the contract of a newly received reward
    @dev Only callable by the distributor if there is an active reward period.
         The reward tokens must be transferred into the contract prior to calling
         this function. Rewards are distributed over `reward_duration` seconds.
         Updating the reward amount while an existing reward period is still active
         causes the remaining rewards to be evenly distributed over the new period.
    @param _token Address of the reward token
    """
    last_update: uint256 = self.last_update_time
    is_updated: bool = False
    for token in self.reward_tokens:
        if token == ZERO_ADDRESS:
            break

        self._update_reward(token, last_update)
        if token == _token:
            received: uint256 = self.reward_data[token].received
            expected_balance: uint256 = received - self.reward_data[token].paid
            actual_balance: uint256 = ERC20(token).balanceOf(self)

            if actual_balance > expected_balance:
                new_amount: uint256 = actual_balance - expected_balance
                duration: uint256 = self.reward_data[token].duration

                if block.timestamp >= self.reward_data[token].period_finish:
                    self.reward_data[token].rate = new_amount / duration
                else:
                    assert msg.sender == self.reward_data[_token].distributor, "Reward period still active"
                    remaining: uint256 = self.reward_data[token].period_finish - block.timestamp
                    leftover: uint256 = remaining * self.reward_data[token].rate
                    self.reward_data[token].rate = (new_amount + leftover) / duration

                self.reward_data[token].period_finish = block.timestamp + duration
                self.reward_data[token].received = received + new_amount
                is_updated = True

    assert is_updated, "Invalid token or no new reward"
    self.last_update_time = block.timestamp


@external
def set_reward_duration(_token: address, _duration: uint256):
    """
    @notice Modify the duration that rewards are distributed over
    @dev Only callable when there is not an active reward period
    @param _token Address of the reward token
    @param _duration Number of seconds to distribute rewards over
    """
    assert msg.sender == self.reward_data[_token].distributor  # dev: only owner
    assert block.timestamp > self.reward_data[_token].period_finish, "Reward period still active"
    self.reward_data[_token].duration = _duration
    log RewardDurationUpdated(_token, _duration)


@external
def set_reward_distributor(_token: address, _distributor: address):
    """
    @notice Modify the reward distributor
    @param _token Address of the reward token
    @param _distributor Reward distributor
    """
    assert msg.sender == self.reward_data[_token].distributor or msg.sender == AUTHORIZER_ADAPTOR
    self.reward_data[_token].distributor = _distributor
    log RewardDistributorUpdated(_token, _distributor)

# Initializer

@external
def initialize(reward_receiver: address):
    """
    @notice Contract constructor
    @param reward_receiver RewardsOnlyGauge address
    """
    assert self.reward_receiver == ZERO_ADDRESS
    assert reward_receiver != ZERO_ADDRESS
    
    self.reward_receiver = reward_receiver

    # The first reward token will always be BAL, we then have the authorizer adaptor
    # as the distributor to ensure that governance has the ability to distribute.
    # The Authorizer adaptor can always update the distributor should Balancer governance wish.
    self._add_reward(BAL_TOKEN, AUTHORIZER_ADAPTOR, WEEK)

Contract ABI

[{"name":"RewardDistributorUpdated","inputs":[{"name":"reward_token","type":"address","indexed":true},{"name":"distributor","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"RewardDurationUpdated","inputs":[{"name":"reward_token","type":"address","indexed":true},{"name":"duration","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_bal_token","type":"address"},{"name":"_authorizerAdaptor","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"add_reward","inputs":[{"name":"_token","type":"address"},{"name":"_distributor","type":"address"},{"name":"_duration","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"remove_reward","inputs":[{"name":"_token","type":"address"},{"name":"_recipient","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"get_reward","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"notify_reward_amount","inputs":[{"name":"_token","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_reward_duration","inputs":[{"name":"_token","type":"address"},{"name":"_duration","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_reward_distributor","inputs":[{"name":"_token","type":"address"},{"name":"_distributor","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"initialize","inputs":[{"name":"reward_receiver","type":"address"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"reward_receiver","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"reward_tokens","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"reward_count","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"reward_data","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"tuple","components":[{"name":"distributor","type":"address"},{"name":"period_finish","type":"uint256"},{"name":"rate","type":"uint256"},{"name":"duration","type":"uint256"},{"name":"received","type":"uint256"},{"name":"paid","type":"uint256"}]}]},{"stateMutability":"view","type":"function","name":"last_update_time","inputs":[],"outputs":[{"name":"","type":"uint256"}]}]

6020610e176080396080518060a01c610e125760e05260206020610e17016080396080518060a01c610e12576101005260e05161012052610100516101405261dead600055610de056600436101561000d57610a8d565b60046000601c3760005134610d925763661ab0b28118610077576004358060a01c610d9257610180526024358060a01c610d92576101a0526020602038036080396080513318610d92576101805160e0526101a0516101005260443561012052610075610a93565b005b63393e582b81186103ac576004358060a01c610d925760e0526024358060a01c610d9257610100526020602038036080396080513318610d92576000600a60e05160a052608052604060802054141561013f576016610120527f52657761726420746f6b656e206e6f74206164646564000000000000000000006101405261012050610120518061014001818260206001820306601f82010390500336823750506308c379a060e0526020610100526101205160206001820306601f820103905060440160fcfd5b600a60e05160a0526080526040608020600081556000600182015560006002820155600060038201556000600482015560006005820155506370a082316101405230610160526020610140602461015c60e0515afa6101a3573d600060003e3d6000fd5b601f3d1115610d9257610140516101205260006004610180527fa9059cbb000000000000000000000000000000000000000000000000000000006101a0526101806004806020846101c00101826020850160045afa505080518201915050610100516020826101c0010152602081019050610120516020826101c0010152602081019050806101c0526101c0505060206102606101c0516101e0600060e0515af1610253573d600060003e3d6000fd5b61024060203d8082116102665781610268565b805b905090508152805160200180610140828460045afa90505050600061014051146102a757610160516101405181816020036008021c9050905015610d92575b6009546001808210610d925780820390509050610180526101a060006008818352015b60e05160016101a0516008811015610d9257026001015418610393576001610180516008811015610d9257026001015460016101a0516008811015610d9257026001015560006001610180516008811015610d925702600101556101805160095560e0517f1df95772db25c427e0df149fe4cd5b7c2e970e096ee7305ff86f6e1167281d7b60006101c05260206101c0a260e0517f2c59073844bbfca50d5cce6497d479fe434747687af5de022514e5a0c8ba479c60006101c05260206101c0a25050506103aa565b81516001018083528114156102ca57505060006000fd5b005b631afe22a6811861041257600b546102a0526102e060006008818352015b6102e051600101546102c0526102c0516103e35761040a565b6102c05160e0526102a051610100526103fa610bea565b81516001018083528114156103ca575b505042600b55005b63a4f6af7081186107ac576004358060a01c610d92576102a052600b546102c05260006102e05261032060006008818352015b6103205160010154610300526103005161045e57610725565b6103005160e0526102c05161010052610475610bea565b6102a0516103005118610715576004600a6103005160a0526080526040608020015461034052610340516005600a6103005160a05260805260406080200154808210610d925780820390509050610360526370a082316103a052306103c05260206103a060246103bc610300515afa6104f3573d600060003e3d6000fd5b601f3d1115610d92576103a0516103805261036051610380511115610715576103805161036051808210610d9257808203905090506103a0526003600a6103005160a052608052604060802001546103c0526001600a6103005160a0526080526040608020015442101561068c57600a6102a05160a05260805260406080205433146105f057601a6103e0527f52657761726420706572696f64207374696c6c20616374697665000000000000610400526103e0506103e0518061040001818260206001820306601f82010390500336823750506308c379a06103a05260206103c0526103e05160206001820306601f82010390506044016103bcfd5b6001600a6103005160a0526080526040608020015442808210610d9257808203905090506103e0526103e0516002600a6103005160a05260805260406080200154808202821582848304141715610d925790509050610400526103a051610400518181830110610d9257808201905090506103c051808015610d92578204905090506002600a6103005160a052608052604060802001556106b7565b6103a0516103c051808015610d92578204905090506002600a6103005160a052608052604060802001555b426103c0518181830110610d9257808201905090506001600a6103005160a05260805260406080200155610340516103a0518181830110610d9257808201905090506004600a6103005160a0526080526040608020015560016102e0525b8151600101808352811415610445575b50506102e0516107a657601e610300527f496e76616c696420746f6b656e206f72206e6f206e65772072657761726400006103205261030050610300518061032001818260206001820306601f82010390500336823750506308c379a06102c05260206102e0526103005160206001820306601f82010390506044016102dcfd5b42600b55005b63d88449ee81186108b4576004358060a01c610d925760e052600a60e05160a0526080526040608020543318610d92576001600a60e05160a05260805260406080200154421161086a57601a610100527f52657761726420706572696f64207374696c6c206163746976650000000000006101205261010050610100518061012001818260206001820306601f82010390500336823750506308c379a060c052602060e0526101005160206001820306601f820103905060440160dcfd5b6024356003600a60e05160a0526080526040608020015560e0517f2c59073844bbfca50d5cce6497d479fe434747687af5de022514e5a0c8ba479c602435610100526020610100a2005b63058a3a248118610957576004358060a01c610d925760e0526024358060a01c610d925761010052600a60e05160a05260805260406080205433186108fa576001610909565b60206020380360803960805133145b15610d925761010051600a60e05160a05260805260406080205560e0517f1df95772db25c427e0df149fe4cd5b7c2e970e096ee7305ff86f6e1167281d7b61010051610120526020610120a2005b63c4d66de881186109bb576004358060a01c610d925761018052600054610d925760006101805114610d92576101805160005560206040380360803960805160e0526020602038036080396080516101005262093a80610120526109b9610a93565b005b63b618ba6281186109d25760005460e052602060e0f35b6354c49fe981186109f95760016004356008811015610d9257026001015460e052602060e0f35b63963c94b98118610a105760095460e052602060e0f35b6348e9c65e8118610a74576004358060a01c610d925760e052600a60e05160a052608052604060802080546101005260018101546101205260028101546101405260038101546101605260048101546101805260058101546101a0525060c0610100f35b63629d46c28118610a8b57600b5460e052602060e0f35b505b60006000fd5b600a60e05160a05260805260406080205415610b2057601a610140527f52657761726420746f6b656e20616c72656164792061646465640000000000006101605261014050610140518061016001818260206001820306601f82010390500336823750506308c379a0610100526020610120526101405160206001820306601f820103905060440161011cfd5b6009546101405260e0516001610140516008811015610d925702600101556101405160018181830110610d92578082019050905060095561010051600a60e05160a052608052604060802055610120516003600a60e05160a0526080526040608020015560e0517f1df95772db25c427e0df149fe4cd5b7c2e970e096ee7305ff86f6e1167281d7b61010051610160526020610160a260e0517f2c59073844bbfca50d5cce6497d479fe434747687af5de022514e5a0c8ba479c61012051610160526020610160a2565b426001600a60e05160a05260805260406080200154808211610c0c5781610c0e565b805b905090506101205261010051610120511115610d90576101205161010051808210610d9257808203905090506002600a60e05160a05260805260406080200154808202821582848304141715610d925790509050610140526000610140511115610d90576005600a60e05160a0526080526040608020018054610140518181830110610d925780820190509050815550600060046101a0527fa9059cbb000000000000000000000000000000000000000000000000000000006101c0526101a06004806020846101e00101826020850160045afa5050805182019150506000546020826101e0010152602081019050610140516020826101e0010152602081019050806101e0526101e0505060206102806101e051610200600060e0515af1610d3c573d600060003e3d6000fd5b61026060203d808211610d4f5781610d51565b805b905090508152805160200180610160828460045afa9050505060006101605114610d9057610180516101605181816020036008021c9050905015610d92575b565b600080fd5b610049610de00361004961016039610049610de003610120518161016001526101405181610180015280604001610160f35b600080fd000000000000000000000000040d1edc9569d4bab2d15287dc5a4f10f56a56b80000000000000000000000000f3e0c4218b7b0108a3643cfe9d3ec0d4f57c54e

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

000000000000000000000000040d1edc9569d4bab2d15287dc5a4f10f56a56b80000000000000000000000000f3e0c4218b7b0108a3643cfe9d3ec0d4f57c54e

-----Decoded View---------------
Arg [0] : _bal_token (address): 0x040d1edc9569d4bab2d15287dc5a4f10f56a56b8
Arg [1] : _authorizerAdaptor (address): 0x0f3e0c4218b7b0108a3643cfe9d3ec0d4f57c54e

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000040d1edc9569d4bab2d15287dc5a4f10f56a56b8
Arg [1] : 0000000000000000000000000f3e0c4218b7b0108a3643cfe9d3ec0d4f57c54e


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.