ETH Price: $3,242.78 (-1.34%)

Contract

0x087239350b3B9bCdad0E7E318EF9C4eaFF5EAed3
 
Transaction Hash
Method
Block
From
To
Swap Tokens168041092023-03-11 10:00:11673 days ago1678528811IN
0x08723935...aFF5EAed3
0 ETH0.0209021577.19950326
Swap Tokens168040972023-03-11 9:57:47673 days ago1678528667IN
0x08723935...aFF5EAed3
0 ETH0.0211963476.89027143
Swap Tokens168040732023-03-11 9:52:59673 days ago1678528379IN
0x08723935...aFF5EAed3
0 ETH0.0393216189.04049604
Swap Tokens154696672022-09-04 4:51:07861 days ago1662267067IN
0x08723935...aFF5EAed3
0 ETH0.001551736.06799959
Swap Tokens111566412020-10-30 6:53:541535 days ago1604040834IN
0x08723935...aFF5EAed3
0 ETH0.0085880329
Swap Tokens104658102020-07-15 18:52:281642 days ago1594839148IN
0x08723935...aFF5EAed3
0 ETH0.0087688131
Swap Tokens104048982020-07-06 8:48:391651 days ago1594025319IN
0x08723935...aFF5EAed3
0 ETH0.0100323234.1
Swap Tokens102722982020-06-15 19:40:551672 days ago1592250055IN
0x08723935...aFF5EAed3
0 ETH0.0078672636
Swap Tokens102253392020-06-08 13:22:571679 days ago1591622577IN
0x08723935...aFF5EAed3
0 ETH0.011378240
Swap Tokens102253322020-06-08 13:21:021679 days ago1591622462IN
0x08723935...aFF5EAed3
0 ETH0.0119331640
Swap Tokens102253262020-06-08 13:19:471679 days ago1591622387IN
0x08723935...aFF5EAed3
0 ETH0.0114466440
Add Liquidity102188352020-06-07 13:08:381680 days ago1591535318IN
0x08723935...aFF5EAed3
0 ETH0.008311944
Swap Tokens100517662020-05-12 13:53:201706 days ago1589291600IN
0x08723935...aFF5EAed3
0 ETH0.0076165525.08401245
Swap Tokens100152882020-05-06 22:09:521712 days ago1588802992IN
0x08723935...aFF5EAed3
0 ETH0.001731786
Swap Tokens100150772020-05-06 21:22:171712 days ago1588800137IN
0x08723935...aFF5EAed3
0 ETH0.001494825
Swap Tokens99454572020-04-26 2:34:121722 days ago1587868452IN
0x08723935...aFF5EAed3
0 ETH0.000596352.1
Swap Tokens98452392020-04-10 15:02:391738 days ago1586530959IN
0x08723935...aFF5EAed3
0 ETH0.000303651
Swap Tokens98174912020-04-06 8:42:581742 days ago1586162578IN
0x08723935...aFF5EAed3
0 ETH0.001642336
Swap Tokens97328872020-03-24 7:37:571755 days ago1585035477IN
0x08723935...aFF5EAed3
0 ETH0.001419885
Swap Tokens97296712020-03-23 19:47:251756 days ago1584992845IN
0x08723935...aFF5EAed3
0 ETH0.000283991
Swap Tokens97295212020-03-23 19:18:251756 days ago1584991105IN
0x08723935...aFF5EAed3
0 ETH0.0002841
Swap Tokens97256092020-03-23 4:32:431756 days ago1584937963IN
0x08723935...aFF5EAed3
0 ETH0.001443735
Swap Tokens96904632020-03-17 17:41:271762 days ago1584466887IN
0x08723935...aFF5EAed3
0 ETH0.000709942.5
Swap Tokens96877312020-03-17 7:42:501762 days ago1584430970IN
0x08723935...aFF5EAed3
0 ETH0.001561935.5
Swap Tokens96843642020-03-16 18:58:061763 days ago1584385086IN
0x08723935...aFF5EAed3
0 ETH0.001076313.6
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.1.0b11

Optimization Enabled:
N/A

Other Settings:
default evmVersion, None license

Contract Source Code (Vyper language format)

contract ERC20():
    def transfer(_to: address, _value: uint256) -> bool: modifying
    def transferFrom(_from: address, _to: address, _value: uint256) -> bool: modifying
    def balanceOf(_owner: address) -> uint256: constant
    def allowance(_owner: address, _spender: address) -> uint256: constant
    def decimals() -> uint256: constant

contract PriceOracle():
    def poolSize(contract_address: address) -> uint256: constant
    def normalized_token_prices(token_address: address) -> uint256: constant

TOKEN_PRICE_MULTIPLIER: constant(uint256) = 100000000
FEE_MULTIPLIER: constant(uint256) = 100000
EXCHANGE_RATE_MULTIPLIER: constant(uint256) = 10000000000000000000000 #10**22

# ERC20 events
Transfer: event({_from: indexed(address), _to: indexed(address), _value: uint256})
Approval: event({_owner: indexed(address), _spender: indexed(address), _value: uint256})

OwnershipTransferred: event({previous_owner: indexed(address), new_owner: indexed(address)})
LiquidityAdded: event({provider: indexed(address), amount: indexed(uint256)})
LiquidityRemoved: event({provider: indexed(address), amount: indexed(uint256)})
Trade: event({input_token: indexed(address), output_token: indexed(address), input_amount: indexed(uint256)})
PermissionUpdated: event({name: indexed(string[32]), value: indexed(bool)})
FeeUpdated: event({name: indexed(string[32]), value: indexed(decimal)})
PriceOracleAddressUpdated: event({new_address: indexed(address)})

name: public(string[32])                                 # Stablecoinswap
symbol: public(string[6])                                # STL
owner: public(address)                                   # contract owner
decimals: public(uint256)                                # 18
totalSupply: public(uint256)                             # total number of contract tokens in existence
balanceOf: public(map(address, uint256))                 # balance of an address
allowance: public(map(address, map(address, uint256)))   # allowance of one address on another
inputTokens: public(map(address, bool))                  # addresses of the ERC20 tokens allowed to transfer into this contract
outputTokens: public(map(address, bool))                 # addresses of the ERC20 tokens allowed to transfer out of this contract
permissions: public(map(string[32], bool))               # pause / resume contract functions
feesInt: map(string[32], uint256)                        # trade / pool fees multiplied by FEE_MULTIPLIER
priceOracleAddress: public(address)                      # address of price oracle

@public
def __init__(token_addresses: address[3], price_oracle_addr: address):
    assert price_oracle_addr != ZERO_ADDRESS

    self.owner = msg.sender
    self.name = "Stablecoinswap"
    self.symbol = "STL"
    self.decimals = 18
    self.permissions["tradingAllowed"] = True
    self.permissions["liquidityAddingAllowed"] = True

    for i in range(3):
        assert token_addresses[i] != ZERO_ADDRESS
        self.inputTokens[token_addresses[i]] = True
        self.outputTokens[token_addresses[i]] = True

    self.feesInt['tradeFee'] = 200
    self.feesInt['ownerFee'] = 100

    self.priceOracleAddress = price_oracle_addr

@private
@constant
def tokenPrice(token_address: address) -> uint256:
    token_price: uint256 = PriceOracle(self.priceOracleAddress).normalized_token_prices(token_address)
    assert token_price > 0

    return token_price

# Required to support tokens (such s USDT) which don't provide a return value for transfer functions
@private
def transferAndCheck(token: address, recipient: address, amount: uint256) -> bool:
    self_balance: uint256 = ERC20(token).balanceOf(self)
    recipient_balance: uint256 = ERC20(token).balanceOf(recipient)
    ERC20(token).transfer(recipient, amount)
    new_self_balance: uint256 = ERC20(token).balanceOf(self)
    new_recipient_balance: uint256 = ERC20(token).balanceOf(recipient)

    assert new_recipient_balance == (recipient_balance + amount)
    assert new_self_balance == (self_balance - amount)

    return True

# Required to support tokens (such s USDT) which don't provide a return value for transfer functions
@private
def transferFromAndCheck(token: address, sender: address, recipient: address, amount: uint256) -> bool:
    recipient_balance: uint256 = ERC20(token).balanceOf(recipient)
    sender_balance: uint256 = ERC20(token).balanceOf(sender)
    ERC20(token).transferFrom(sender, recipient, amount)
    new_recipient_balance: uint256 = ERC20(token).balanceOf(recipient)
    new_sender_balance: uint256 = ERC20(token).balanceOf(sender)

    assert new_sender_balance == (sender_balance - amount)
    assert new_recipient_balance == (recipient_balance + amount)

    return True

# Deposit erc20 token
@public
@nonreentrant('lock')
def addLiquidity(token_address: address, erc20_token_amount: uint256, deadline: timestamp) -> uint256:
    assert self.inputTokens[token_address]
    assert deadline > block.timestamp and erc20_token_amount > 0
    assert self.permissions["liquidityAddingAllowed"]

    token_price: uint256 = self.tokenPrice(token_address)
    # It's better to divide at the very end for a higher precision
    new_liquidity: uint256 = token_price * erc20_token_amount / TOKEN_PRICE_MULTIPLIER
    if self.totalSupply > 0:
        new_liquidity = new_liquidity * self.totalSupply / PriceOracle(self.priceOracleAddress).poolSize(self)
    else:
        assert new_liquidity >= 1000000000

    self.balanceOf[msg.sender] += new_liquidity
    self.totalSupply += new_liquidity

    # Can't assert the result directly: https://github.com/ethereum/vyper/issues/1468
    transfer_from_result: bool = self.transferFromAndCheck(token_address, msg.sender, self, erc20_token_amount)
    assert transfer_from_result

    log.LiquidityAdded(msg.sender, new_liquidity)

    return new_liquidity

# Withdraw erc20 token
@public
@nonreentrant('lock')
def removeLiquidity(token_address: address, stableswap_token_amount: uint256, erc20_min_output_amount: uint256, deadline: timestamp) -> uint256:
    assert self.outputTokens[token_address]
    assert stableswap_token_amount > 0 and deadline > block.timestamp
    assert self.balanceOf[msg.sender] >= stableswap_token_amount
    assert self.totalSupply > 0

    token_price: uint256 = self.tokenPrice(token_address)
    pool_size: uint256 = PriceOracle(self.priceOracleAddress).poolSize(self)
    # erc20_token_amount = stableswap_token_amount * pool_size / totalSupply / token_price * TOKEN_PRICE_MULTIPLIER
    # It's better to divide at the very end for a higher precision
    erc20_token_amount: uint256 = stableswap_token_amount * pool_size / self.totalSupply

    ownerFee: uint256 = 0

    if msg.sender != self.owner:
        ownerFee = stableswap_token_amount * self.feesInt['ownerFee'] / FEE_MULTIPLIER
        multiplier_after_fees: uint256 = FEE_MULTIPLIER - self.feesInt['ownerFee'] - self.feesInt['tradeFee']
        erc20_token_amount = erc20_token_amount * multiplier_after_fees / FEE_MULTIPLIER

    erc20_token_amount = erc20_token_amount * TOKEN_PRICE_MULTIPLIER / token_price

    self.balanceOf[msg.sender] -= stableswap_token_amount
    self.balanceOf[self.owner] += ownerFee
    self.totalSupply -= stableswap_token_amount - ownerFee

    assert erc20_token_amount >= erc20_min_output_amount

    # Can't assert the result directly: https://github.com/ethereum/vyper/issues/1468
    transfer_result: bool = self.transferAndCheck(token_address, msg.sender, erc20_token_amount)
    assert transfer_result

    log.LiquidityRemoved(msg.sender, stableswap_token_amount)

    return erc20_token_amount

# Note that due to rounding, the fees could be slightly higher for the tokens with smaller decimal precision.
@public
@constant
def tokenExchangeRateAfterFees(input_token_address: address, output_token_address: address) -> uint256:
    input_token_price: uint256 = self.tokenPrice(input_token_address)
    output_token_price: uint256 = self.tokenPrice(output_token_address)

    multiplier_after_fees: uint256 = FEE_MULTIPLIER - self.feesInt['ownerFee'] - self.feesInt['tradeFee']
    exchange_rate: uint256 = EXCHANGE_RATE_MULTIPLIER * input_token_price * multiplier_after_fees / FEE_MULTIPLIER / output_token_price

    return exchange_rate

@public
@constant
def tokenOutputAmountAfterFees(input_token_amount: uint256, input_token_address: address, output_token_address: address) -> uint256:
    output_token_amount: uint256 = input_token_amount * self.tokenExchangeRateAfterFees(input_token_address, output_token_address) / EXCHANGE_RATE_MULTIPLIER
    return output_token_amount

# Trade one erc20 token for another
@public
@nonreentrant('lock')
def swapTokens(input_token: address, output_token: address, erc20_input_amount: uint256, erc20_min_output_amount: uint256, deadline: timestamp) -> uint256:
    assert self.inputTokens[input_token] and self.outputTokens[output_token]
    assert erc20_input_amount > 0 and erc20_min_output_amount > 0
    assert deadline > block.timestamp
    assert self.permissions["tradingAllowed"]

    input_token_price: uint256 = self.tokenPrice(input_token)
    # input_usd_value is a value of input multiplied by TOKEN_PRICE_MULTIPLIER
    input_usd_value: uint256 = erc20_input_amount * input_token_price
    tradeFee: uint256 = input_usd_value * self.feesInt['tradeFee'] / FEE_MULTIPLIER / TOKEN_PRICE_MULTIPLIER
    ownerFee: uint256 = input_usd_value * self.feesInt['ownerFee'] / FEE_MULTIPLIER / TOKEN_PRICE_MULTIPLIER

    pool_size_after_swap: uint256 = PriceOracle(self.priceOracleAddress).poolSize(self) + tradeFee
    new_owner_shares: uint256 = self.totalSupply * ownerFee / pool_size_after_swap

    erc20_output_amount: uint256 = self.tokenOutputAmountAfterFees(erc20_input_amount, input_token, output_token)
    assert erc20_output_amount >= erc20_min_output_amount

    self.balanceOf[self.owner] += new_owner_shares
    self.totalSupply += new_owner_shares

    # Can't assert the result directly: https://github.com/ethereum/vyper/issues/1468
    transfer_from_result: bool = self.transferFromAndCheck(input_token, msg.sender, self, erc20_input_amount)
    assert transfer_from_result

    transfer_result: bool = self.transferAndCheck(output_token, msg.sender, erc20_output_amount)
    assert transfer_result

    log.Trade(input_token, output_token, erc20_input_amount)

    return erc20_output_amount

@public
def updateInputToken(token_address: address, allowed: bool) -> bool:
    assert msg.sender == self.owner
    assert not self.inputTokens[token_address] == allowed
    assert ERC20(token_address).decimals() >= 2
    self.inputTokens[token_address] = allowed
    return True

@public
def updateOutputToken(token_address: address, allowed: bool) -> bool:
    assert msg.sender == self.owner
    assert not self.outputTokens[token_address] == allowed
    assert ERC20(token_address).decimals() >= 2
    self.outputTokens[token_address] = allowed
    return True

@public
def updatePermission(permission_name: string[32], value: bool) -> bool:
    assert msg.sender == self.owner
    self.permissions[permission_name] = value
    log.PermissionUpdated(permission_name, value)
    return True

# Return share of total liquidity belonging to the user
@public
@constant
def poolOwnership(user_address: address) -> decimal:
    user_balance: decimal = convert(self.balanceOf[user_address], decimal)
    total_liquidity: decimal = convert(self.totalSupply, decimal)
    share: decimal = user_balance / total_liquidity
    return share

@public
def transferOwnership(new_owner: address) -> bool:
    assert new_owner != ZERO_ADDRESS
    assert msg.sender == self.owner
    self.owner = new_owner
    log.OwnershipTransferred(self.owner, new_owner)
    return True

@public
def updateFee(fee_name: string[32], value: decimal) -> bool:
    assert msg.sender == self.owner
    self.feesInt[fee_name] = convert(floor(value * convert(FEE_MULTIPLIER, decimal)), uint256)
    log.FeeUpdated(fee_name, value)
    return True

@public
@constant
def fees(fee_name: string[32]) -> decimal:
    return convert(self.feesInt[fee_name], decimal) / convert(FEE_MULTIPLIER, decimal)

@public
def updatePriceOracleAddress(new_address: address) -> bool:
    assert msg.sender == self.owner
    self.priceOracleAddress = new_address
    log.PriceOracleAddressUpdated(new_address)
    return True

# ERC-20 functions

@public
def transfer(_to: address, _value: uint256) -> bool:
    self.balanceOf[msg.sender] -= _value
    self.balanceOf[_to] += _value
    log.Transfer(msg.sender, _to, _value)
    return True

@public
def transferFrom(_from: address, _to: address, _value: uint256) -> bool:
    self.balanceOf[_from] -= _value
    self.balanceOf[_to] += _value
    self.allowance[_from][msg.sender] -= _value
    log.Transfer(_from, _to, _value)
    return True

@public
def approve(_spender: address, _value: uint256) -> bool:
    self.allowance[msg.sender][_spender] = _value
    log.Approval(msg.sender, msg.sender, _value)
    return True

Contract Security Audit

Contract ABI

[{"name":"Transfer","inputs":[{"type":"address","name":"_from","indexed":true},{"type":"address","name":"_to","indexed":true},{"type":"uint256","name":"_value","indexed":false}],"anonymous":false,"type":"event"},{"name":"Approval","inputs":[{"type":"address","name":"_owner","indexed":true},{"type":"address","name":"_spender","indexed":true},{"type":"uint256","name":"_value","indexed":false}],"anonymous":false,"type":"event"},{"name":"OwnershipTransferred","inputs":[{"type":"address","name":"previous_owner","indexed":true},{"type":"address","name":"new_owner","indexed":true}],"anonymous":false,"type":"event"},{"name":"LiquidityAdded","inputs":[{"type":"address","name":"provider","indexed":true},{"type":"uint256","name":"amount","indexed":true}],"anonymous":false,"type":"event"},{"name":"LiquidityRemoved","inputs":[{"type":"address","name":"provider","indexed":true},{"type":"uint256","name":"amount","indexed":true}],"anonymous":false,"type":"event"},{"name":"Trade","inputs":[{"type":"address","name":"input_token","indexed":true},{"type":"address","name":"output_token","indexed":true},{"type":"uint256","name":"input_amount","indexed":true}],"anonymous":false,"type":"event"},{"name":"PermissionUpdated","inputs":[{"type":"string32","name":"name","indexed":true},{"type":"bool","name":"value","indexed":true}],"anonymous":false,"type":"event"},{"name":"FeeUpdated","inputs":[{"type":"string32","name":"name","indexed":true},{"type":"fixed168x10","name":"value","indexed":true}],"anonymous":false,"type":"event"},{"name":"PriceOracleAddressUpdated","inputs":[{"type":"address","name":"new_address","indexed":true}],"anonymous":false,"type":"event"},{"outputs":[],"inputs":[{"type":"address[3]","name":"token_addresses"},{"type":"address","name":"price_oracle_addr"}],"constant":false,"payable":false,"type":"constructor"},{"name":"addLiquidity","outputs":[{"type":"uint256","name":"out"}],"inputs":[{"type":"address","name":"token_address"},{"type":"uint256","name":"erc20_token_amount"},{"type":"uint256","unit":"sec","name":"deadline"}],"constant":false,"payable":false,"type":"function","gas":163453},{"name":"removeLiquidity","outputs":[{"type":"uint256","name":"out"}],"inputs":[{"type":"address","name":"token_address"},{"type":"uint256","name":"stableswap_token_amount"},{"type":"uint256","name":"erc20_min_output_amount"},{"type":"uint256","unit":"sec","name":"deadline"}],"constant":false,"payable":false,"type":"function","gas":204477},{"name":"tokenExchangeRateAfterFees","outputs":[{"type":"uint256","name":"out"}],"inputs":[{"type":"address","name":"input_token_address"},{"type":"address","name":"output_token_address"}],"constant":true,"payable":false,"type":"function","gas":9561},{"name":"tokenOutputAmountAfterFees","outputs":[{"type":"uint256","name":"out"}],"inputs":[{"type":"uint256","name":"input_token_amount"},{"type":"address","name":"input_token_address"},{"type":"address","name":"output_token_address"}],"constant":true,"payable":false,"type":"function","gas":16010},{"name":"swapTokens","outputs":[{"type":"uint256","name":"out"}],"inputs":[{"type":"address","name":"input_token"},{"type":"address","name":"output_token"},{"type":"uint256","name":"erc20_input_amount"},{"type":"uint256","name":"erc20_min_output_amount"},{"type":"uint256","unit":"sec","name":"deadline"}],"constant":false,"payable":false,"type":"function","gas":207255},{"name":"updateInputToken","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"token_address"},{"type":"bool","name":"allowed"}],"constant":false,"payable":false,"type":"function","gas":37682},{"name":"updateOutputToken","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"token_address"},{"type":"bool","name":"allowed"}],"constant":false,"payable":false,"type":"function","gas":37712},{"name":"updatePermission","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"string","name":"permission_name"},{"type":"bool","name":"value"}],"constant":false,"payable":false,"type":"function","gas":37929},{"name":"poolOwnership","outputs":[{"type":"fixed168x10","name":"out"}],"inputs":[{"type":"address","name":"user_address"}],"constant":true,"payable":false,"type":"function","gas":1507},{"name":"transferOwnership","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"new_owner"}],"constant":false,"payable":false,"type":"function","gas":37829},{"name":"updateFee","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"string","name":"fee_name"},{"type":"fixed168x10","name":"value"}],"constant":false,"payable":false,"type":"function","gas":37983},{"name":"fees","outputs":[{"type":"fixed168x10","name":"out"}],"inputs":[{"type":"string","name":"fee_name"}],"constant":true,"payable":false,"type":"function","gas":1481},{"name":"updatePriceOracleAddress","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"new_address"}],"constant":false,"payable":false,"type":"function","gas":37244},{"name":"transfer","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"_to"},{"type":"uint256","name":"_value"}],"constant":false,"payable":false,"type":"function","gas":74500},{"name":"transferFrom","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"_from"},{"type":"address","name":"_to"},{"type":"uint256","name":"_value"}],"constant":false,"payable":false,"type":"function","gas":110367},{"name":"approve","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"_spender"},{"type":"uint256","name":"_value"}],"constant":false,"payable":false,"type":"function","gas":38231},{"name":"name","outputs":[{"type":"string","name":"out"}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":6882},{"name":"symbol","outputs":[{"type":"string","name":"out"}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":3038},{"name":"owner","outputs":[{"type":"address","name":"out"}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":1143},{"name":"decimals","outputs":[{"type":"uint256","name":"out"}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":1173},{"name":"totalSupply","outputs":[{"type":"uint256","name":"out"}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":1203},{"name":"balanceOf","outputs":[{"type":"uint256","name":"out"}],"inputs":[{"type":"address","name":"arg0"}],"constant":true,"payable":false,"type":"function","gas":1387},{"name":"allowance","outputs":[{"type":"uint256","name":"out"}],"inputs":[{"type":"address","name":"arg0"},{"type":"address","name":"arg1"}],"constant":true,"payable":false,"type":"function","gas":1571},{"name":"inputTokens","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"arg0"}],"constant":true,"payable":false,"type":"function","gas":1447},{"name":"outputTokens","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"arg0"}],"constant":true,"payable":false,"type":"function","gas":1477},{"name":"permissions","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"string","name":"arg0"}],"constant":true,"payable":false,"type":"function","gas":1650},{"name":"priceOracleAddress","outputs":[{"type":"address","name":"out"}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":1383}]

740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a0526080612c916101403934156100a157600080fd5b6020612c9160c03960c05160205181106100ba57600080fd5b5060206020612c910160c03960c05160205181106100d757600080fd5b5060206040612c910160c03960c05160205181106100f457600080fd5b5060206060612c910160c03960c051602051811061011157600080fd5b5060006101a0511861012257600080fd5b33600255600e6101c0527f537461626c65636f696e737761700000000000000000000000000000000000006101e0526101c080600060c052602060c020602082510161012060006002818352015b82610120516020021115610183576101a5565b61012051602002850151610120518501555b8151600101808352811415610170575b5050505050506003610220527f53544c00000000000000000000000000000000000000000000000000000000006102405261022080600160c052602060c020602082510161012060006002818352015b826101205160200211156102085761022a565b61012051602002850151610120518501555b81516001018083528114156101f5575b505050505050601260035560016009600e610280527f74726164696e67416c6c6f7765640000000000000000000000000000000000006102a0526102805150610280516102a02060e05260c052604060c020556001600960166102e0527f6c6971756964697479416464696e67416c6c6f77656400000000000000000000610300526102e051506102e0516103002060e05260c052604060c0205561034060006003818352015b600061014061034051600381106102e757600080fd5b6020020151186102f657600080fd5b60016007610140610340516003811061030e57600080fd5b602002015160e05260c052604060c0205560016008610140610340516003811061033757600080fd5b602002015160e05260c052604060c020555b81516001018083528114156102d1575b505060c8600a6008610360527f7472616465466565000000000000000000000000000000000000000000000000610380526103605150610360516103802060e05260c052604060c020556064600a60086103c0527f6f776e65724665650000000000000000000000000000000000000000000000006103e0526103c051506103c0516103e02060e05260c052604060c020556101a051600b55612c7956600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a052600015610114575b6101605261014052600b543b6100b057600080fd5b600b5430186100be57600080fd5b6020610220602463f1bb10866101a052610140516101c0526101bc600b545afa6100e757600080fd5b60005061022051610180526000610180511161010257600080fd5b61018051600052600051610160515650005b60001561032f575b6101a052610140526101605261018052610140513b61013a57600080fd5b61014051301861014957600080fd5b602061026060246370a082316101e05230610200526101fc610140515afa61017057600080fd5b600050610260516101c052610140513b61018957600080fd5b61014051301861019857600080fd5b602061032060246370a082316102a052610160516102c0526102bc610140515afa6101c257600080fd5b6000506103205161028052610140513b6101db57600080fd5b6101405130186101ea57600080fd5b60206103e0604463a9059cbb610340526101605161036052610180516103805261035c6000610140515af161021e57600080fd5b6000506103e050610140513b61023357600080fd5b61014051301861024257600080fd5b60206104a060246370a0823161042052306104405261043c610140515afa61026957600080fd5b6000506104a05161040052610140513b61028257600080fd5b61014051301861029157600080fd5b602061056060246370a082316104e05261016051610500526104fc610140515afa6102bb57600080fd5b600050610560516104c0526102805161018051610280510110156102de57600080fd5b6101805161028051016104c051146102f557600080fd5b610180516101c051101561030857600080fd5b610180516101c05103610400511461031f57600080fd5b60016000526000516101a0515650005b60001561055c575b6101c0526101405261016052610180526101a052610140513b61035957600080fd5b61014051301861036857600080fd5b602061028060246370a0823161020052610180516102205261021c610140515afa61039257600080fd5b600050610280516101e052610140513b6103ab57600080fd5b6101405130186103ba57600080fd5b602061034060246370a082316102c052610160516102e0526102dc610140515afa6103e457600080fd5b600050610340516102a052610140513b6103fd57600080fd5b61014051301861040c57600080fd5b602061042060646323b872dd610360526101605161038052610180516103a0526101a0516103c05261037c6000610140515af161044857600080fd5b60005061042050610140513b61045d57600080fd5b61014051301861046c57600080fd5b60206104e060246370a0823161046052610180516104805261047c610140515afa61049657600080fd5b6000506104e05161044052610140513b6104af57600080fd5b6101405130186104be57600080fd5b60206105a060246370a0823161052052610160516105405261053c610140515afa6104e857600080fd5b6000506105a051610500526101a0516102a051101561050657600080fd5b6101a0516102a05103610500511461051d57600080fd5b6101e0516101a0516101e05101101561053557600080fd5b6101a0516101e05101610440511461054c57600080fd5b60016000526000516101c0515650005b6355776b7760005114156108a75762ffffff541561057957600080fd5b600162ffffff55341561058b57600080fd5b600435602051811061059c57600080fd5b50600760043560e05260c052604060c020546105b757600080fd5b6000602435114260443511166105cc57600080fd5b60096016610140527f6c6971756964697479416464696e67416c6c6f77656400000000000000000000610160526101405150610140516101602060e05260c052604060c0205461061b57600080fd5b6101405161016051610180516101a0516384ba3f696101e05260043561020052610200516006580161009b565b610260526101a052610180526101605261014052610260516101a0526305f5e10061067257600080fd5b6305f5e1006101a05115156106885760006106ab565b6024356101a0516024356101a0510204146106a257600080fd5b6024356101a051025b04610280526000600454111561075657600b543b6106c857600080fd5b600b5430186106d657600080fd5b6020610320602463fa75d1606102a052306102c0526102bc600b545afa6106fc57600080fd5b60005061032051610340526103405161071457600080fd5b6103405161028051151561072957600061074c565b600454610280516004546102805102041461074357600080fd5b60045461028051025b046102805261076b565b633b9aca0061028051101561076a57600080fd5b5b60053360e05260c052604060c020805461028051825401101561078d57600080fd5b61028051815401815550600480546102805182540110156107ad57600080fd5b61028051815401815550610140610380525b610380515160206103805101610380526103806103805110156107e1576107bf565b63d69c80376103a0526004356103c052336103e05230610400526024356104205261042051610400516103e0516103c05160065801610337565b61048052610360610380525b610380515260206103805103610380526101406103805110151561084a57610827565b61048051610360526103605161085f57600080fd5b61028051337fc17cea59c2955cb181b03393209566960365771dbba9dc3d510180e7cb31208860006000a361028051600052600062ffffff5560206000f350600062ffffff55005b6393ca2f8a6000511415610f375762ffffff54156108c457600080fd5b600162ffffff5534156108d657600080fd5b60043560205181106108e757600080fd5b50600860043560e05260c052604060c0205461090257600080fd5b42606435116000602435111661091757600080fd5b60243560053360e05260c052604060c02054101561093457600080fd5b60006004541161094357600080fd5b610140516384ba3f69610180526004356101a0526101a0516006580161009b565b61020052610140526102005161014052600b543b61098157600080fd5b600b54301861098f57600080fd5b60206102c0602463fa75d16061024052306102605261025c600b545afa6109b557600080fd5b6000506102c051610220526004546109cc57600080fd5b60045460243515156109df576000610a02565b61022051602435610220516024350204146109f957600080fd5b61022051602435025b046102e052600061030052600254331815610d5057620186a0610a2457600080fd5b620186a06024351515610a38576000610b21565b600a6008610320527f6f776e6572466565000000000000000000000000000000000000000000000000610340526103205150610320516103402060e05260c052604060c02054602435600a6008610320527f6f776e6572466565000000000000000000000000000000000000000000000000610340526103205150610320516103402060e05260c052604060c02054602435020414610ad657600080fd5b600a6008610320527f6f776e6572466565000000000000000000000000000000000000000000000000610340526103205150610320516103402060e05260c052604060c02054602435025b0461030052600a6008610400527f7472616465466565000000000000000000000000000000000000000000000000610420526104005150610400516104202060e05260c052604060c02054600a60086103a0527f6f776e65724665650000000000000000000000000000000000000000000000006103c0526103a051506103a0516103c02060e05260c052604060c02054620186a01015610bc157600080fd5b600a60086103a0527f6f776e65724665650000000000000000000000000000000000000000000000006103c0526103a051506103a0516103c02060e05260c052604060c02054620186a0031015610c1757600080fd5b600a6008610400527f7472616465466565000000000000000000000000000000000000000000000000610420526104005150610400516104202060e05260c052604060c02054600a60086103a0527f6f776e65724665650000000000000000000000000000000000000000000000006103c0526103a051506103a0516103c02060e05260c052604060c02054620186a01015610cb257600080fd5b600a60086103a0527f6f776e65724665650000000000000000000000000000000000000000000000006103c0526103a051506103a0516103c02060e05260c052604060c02054620186a0030361038052620186a0610d0f57600080fd5b620186a06102e0511515610d24576000610d4a565b610380516102e051610380516102e051020414610d4057600080fd5b610380516102e051025b046102e0525b61014051610d5d57600080fd5b610140516102e0511515610d72576000610d9b565b6305f5e1006102e0516305f5e1006102e051020414610d9057600080fd5b6305f5e1006102e051025b046102e05260053360e05260c052604060c02060243581541015610dbe57600080fd5b602435815403815550600560025460e05260c052604060c0208054610300518254011015610deb57600080fd5b610300518154018155506004610300516024351015610e0957600080fd5b610300516024350381541015610e1e57600080fd5b610300516024351015610e3057600080fd5b61030051602435038154038155506044356102e0511015610e5057600080fd5b610140610480525b61048051516020610480510161048052610480610480511015610e7a57610e58565b6366f4f0026104a0526004356104c052336104e0526102e05161050052610500516104e0516104c0516006580161011c565b61056052610460610480525b6104805152602061048051036104805261014061048051101515610edb57610eb8565b610560516104605261046051610ef057600080fd5b602435337fc2c3f06e49b9f15e7b4af9055e183b0d73362e033ad82a07dec9bf984017171960006000a36102e051600052600062ffffff5560206000f350600062ffffff55005b6391b26ae06000511415611394573415610f5057600080fd5b6004356020518110610f6157600080fd5b506024356020518110610f7357600080fd5b50610140516384ba3f69610180526004356101a0526101a0516006580161009b565b610200526101405261020051610140526101405161016051610180516101a0516101c0516101e05161020051610220516384ba3f696102605260243561028052610280516006580161009b565b6102e05261022052610200526101e0526101c0526101a0526101805261016052610140526102e05161022052600a6008610380527f74726164654665650000000000000000000000000000000000000000000000006103a0526103805150610380516103a02060e05260c052604060c02054600a6008610320527f6f776e6572466565000000000000000000000000000000000000000000000000610340526103205150610320516103402060e05260c052604060c02054620186a010156110a957600080fd5b600a6008610320527f6f776e6572466565000000000000000000000000000000000000000000000000610340526103205150610320516103402060e05260c052604060c02054620186a00310156110ff57600080fd5b600a6008610380527f74726164654665650000000000000000000000000000000000000000000000006103a0526103805150610380516103a02060e05260c052604060c02054600a6008610320527f6f776e6572466565000000000000000000000000000000000000000000000000610340526103205150610320516103402060e05260c052604060c02054620186a0101561119a57600080fd5b600a6008610320527f6f776e6572466565000000000000000000000000000000000000000000000000610340526103205150610320516103402060e05260c052604060c02054620186a0030361030052610220516111f757600080fd5b61022051620186a061120857600080fd5b620186a069021e19e0c9bab2400000151561122457600061125f565b6101405169021e19e0c9bab24000006101405169021e19e0c9bab240000002041461124e57600080fd5b6101405169021e19e0c9bab2400000025b151561126c57600061137f565b6103005169021e19e0c9bab240000015156112885760006112c3565b6101405169021e19e0c9bab24000006101405169021e19e0c9bab24000000204146112b257600080fd5b6101405169021e19e0c9bab2400000025b6103005169021e19e0c9bab240000015156112df57600061131a565b6101405169021e19e0c9bab24000006101405169021e19e0c9bab240000002041461130957600080fd5b6101405169021e19e0c9bab2400000025b02041461132657600080fd5b6103005169021e19e0c9bab2400000151561134257600061137d565b6101405169021e19e0c9bab24000006101405169021e19e0c9bab240000002041461136c57600080fd5b6101405169021e19e0c9bab2400000025b025b04046103e0526103e05160005260206000f350005b63126603b5600051141561146e5734156113ad57600080fd5b60243560205181106113be57600080fd5b5060443560205181106113d057600080fd5b5069021e19e0c9bab24000006113e557600080fd5b69021e19e0c9bab2400000602061020060446391b26ae061016052602435610180526044356101a05261017c6000305af161141f57600080fd5b6102005161022052600435151561143757600061145a565b610220516004356102205160043502041461145157600080fd5b61022051600435025b04610140526101405160005260206000f350005b6343d91bf16000511415611b1a5762ffffff541561148b57600080fd5b600162ffffff55341561149d57600080fd5b60043560205181106114ae57600080fd5b5060243560205181106114c057600080fd5b50600860243560e05260c052604060c02054600760043560e05260c052604060c02054166114ed57600080fd5b6000606435116000604435111661150357600080fd5b426084351161151157600080fd5b6009600e610140527f74726164696e67416c6c6f776564000000000000000000000000000000000000610160526101405150610140516101602060e05260c052604060c0205461156057600080fd5b6101405161016051610180516101a0516384ba3f696101e05260043561020052610200516006580161009b565b610260526101a052610180526101605261014052610260516101a05260443515156115b95760006115dc565b6101a0516044356101a0516044350204146115d357600080fd5b6101a051604435025b610280526305f5e1006115ee57600080fd5b6305f5e100620186a061160057600080fd5b620186a0610280511515611615576000611701565b600a60086102c0527f74726164654665650000000000000000000000000000000000000000000000006102e0526102c051506102c0516102e02060e05260c052604060c0205461028051600a60086102c0527f74726164654665650000000000000000000000000000000000000000000000006102e0526102c051506102c0516102e02060e05260c052604060c02054610280510204146116b557600080fd5b600a60086102c0527f74726164654665650000000000000000000000000000000000000000000000006102e0526102c051506102c0516102e02060e05260c052604060c0205461028051025b04046102a0526305f5e10061171557600080fd5b6305f5e100620186a061172757600080fd5b620186a061028051151561173c576000611828565b600a6008610340527f6f776e6572466565000000000000000000000000000000000000000000000000610360526103405150610340516103602060e05260c052604060c0205461028051600a6008610340527f6f776e6572466565000000000000000000000000000000000000000000000000610360526103405150610340516103602060e05260c052604060c02054610280510204146117dc57600080fd5b600a6008610340527f6f776e6572466565000000000000000000000000000000000000000000000000610360526103405150610340516103602060e05260c052604060c0205461028051025b040461032052600b543b61183b57600080fd5b600b54301861184957600080fd5b6020610440602463fa75d1606103c052306103e0526103dc600b545afa61186f57600080fd5b6000506104405161046052610460516102a0516104605101101561189257600080fd5b6102a05161046051016103a0526103a0516118ac57600080fd5b6103a05160045415156118c05760006118e3565b61032051600454610320516004540204146118da57600080fd5b61032051600454025b04610480526020610580606463126603b56104c0526044356104e05260043561050052602435610520526104dc6000305af161191e57600080fd5b610580516104a0526064356104a051101561193857600080fd5b600560025460e05260c052604060c020805461048051825401101561195c57600080fd5b610480518154018155506004805461048051825401101561197c57600080fd5b610480518154018155506101406105c0525b6105c0515160206105c051016105c0526105c06105c05110156119b05761198e565b63d69c80376105e0526004356106005233610620523061064052604435610660526106605161064051610620516106005160065801610337565b6106c0526105a06105c0525b6105c0515260206105c051036105c0526101406105c051101515611a19576119f6565b6106c0516105a0526105a051611a2e57600080fd5b610140610700525b61070051516020610700510161070052610700610700511015611a5857611a36565b6366f4f002610720526024356107405233610760526104a051610780526107805161076051610740516006580161011c565b6107e0526106e0610700525b6107005152602061070051036107005261014061070051101515611ab957611a96565b6107e0516106e0526106e051611ace57600080fd5b6044356024356004357f0d49f50d6dd629f4e4070731edb0abd680823ab1cbd43d89590522da4b5b32e760006000a46104a051600052600062ffffff5560206000f350600062ffffff55005b6323d7d1a86000511415611bf4573415611b3357600080fd5b6004356020518110611b4457600080fd5b5060243560028110611b5557600080fd5b506002543314611b6457600080fd5b602435600760043560e05260c052604060c020541415611b8357600080fd5b60026004353b611b9257600080fd5b6004353018611ba057600080fd5b60206101a0600463313ce5676101405261015c6004355afa611bc157600080fd5b6000506101a0511015611bd357600080fd5b602435600760043560e05260c052604060c02055600160005260206000f350005b6344dbd3346000511415611cce573415611c0d57600080fd5b6004356020518110611c1e57600080fd5b5060243560028110611c2f57600080fd5b506002543314611c3e57600080fd5b602435600860043560e05260c052604060c020541415611c5d57600080fd5b60026004353b611c6c57600080fd5b6004353018611c7a57600080fd5b60206101a0600463313ce5676101405261015c6004355afa611c9b57600080fd5b6000506101a0511015611cad57600080fd5b602435600860043560e05260c052604060c02055600160005260206000f350005b63903a10016000511415611db0573415611ce757600080fd5b6040600435600401610140376020600435600401351115611d0757600080fd5b60243560028110611d1757600080fd5b506002543314611d2657600080fd5b6024356009610140516101602060e05260c052604060c02055602435610140806020015160008251806020901315611d5d57600080fd5b8091901215611d6b57600080fd5b8061014051036101000a82049050905090507f22b59c94b6ec143f205f4ac5d8177280de0eab514e8d857330a1af17343e97bd60006000a3600160005260206000f350005b6380a0628b6000511415611e77573415611dc957600080fd5b6004356020518110611dda57600080fd5b506402540be400600560043560e05260c052604060c0205402608051811115611e0257600080fd5b610140526402540be40060045402608051811115611e1f57600080fd5b6101605260a051610140516101605180611e3857600080fd5b806402540be4008302059050905080608051901315611e5657600080fd5b8091901215611e6457600080fd5b610180526101805160005260206000f350005b63f2fde38b6000511415611efe573415611e9057600080fd5b6004356020518110611ea157600080fd5b50600060043518611eb157600080fd5b6002543314611ebf57600080fd5b6004356002556004356002547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060006000a3600160005260206000f350005b63993f4a2060005114156120ff573415611f1757600080fd5b6040600435600401610140376020600435600401351115611f3757600080fd5b6002543314611f4557600080fd5b600066038d7ea4c680006101a05260a0516101a0516024358181028115838383051417611f7157600080fd5b6402540be400810590509050905080608051901315611f8f57600080fd5b8091901215611f9d57600080fd5b121561200c576402540be4006402540be3ff66038d7ea4c680006101a05260a0516101a0516024358181028115838383051417611fd957600080fd5b6402540be400810590509050905080608051901315611ff757600080fd5b809190121561200557600080fd5b030561206a565b6402540be40066038d7ea4c680006101a05260a0516101a051602435818102811583838305141761203c57600080fd5b6402540be40081059050905090508060805190131561205a57600080fd5b809190121561206857600080fd5b055b600081121561207857600080fd5b600a610140516101602060e05260c052604060c020556024356101408060200151600082518060209013156120ac57600080fd5b80919012156120ba57600080fd5b8061014051036101000a82049050905090507fd8dd23b660d1a2cd022ce86c6122d03c591f721b3c2af378ecb404c0b605ddc760006000a3600160005260206000f350005b63e005cbbf60005114156121c057341561211857600080fd5b604060043560040161014037602060043560040135111561213857600080fd5b6402540be400600a610140516101602060e05260c052604060c020540260805181111561216457600080fd5b6101a05266038d7ea4c680006101c05260a0516101a0516101c0518061218957600080fd5b806402540be40083020590509050806080519013156121a757600080fd5b80919012156121b557600080fd5b60005260206000f350005b6386d1e02b60005114156122355734156121d957600080fd5b60043560205181106121ea57600080fd5b5060025433146121f957600080fd5b600435600b556004357f12ad2958c2383ce31dd51da097e673d81de88c202731500406f3afc70a8cf17060006000a2600160005260206000f350005b63a9059cbb60005114156122f257341561224e57600080fd5b600435602051811061225f57600080fd5b5060053360e05260c052604060c0206024358154101561227e57600080fd5b602435815403815550600560043560e05260c052604060c020805460243582540110156122aa57600080fd5b60243581540181555060243561014052600435337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020610140a3600160005260206000f350005b6323b872dd60005114156123fa57341561230b57600080fd5b600435602051811061231c57600080fd5b50602435602051811061232e57600080fd5b50600560043560e05260c052604060c0206044358154101561234f57600080fd5b604435815403815550600560243560e05260c052604060c0208054604435825401101561237b57600080fd5b604435815401815550600660043560e05260c052604060c0203360e05260c052604060c020604435815410156123b057600080fd5b604435815403815550604435610140526024356004357fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020610140a3600160005260206000f350005b63095ea7b3600051141561248257341561241357600080fd5b600435602051811061242457600080fd5b5060243560063360e05260c052604060c02060043560e05260c052604060c020556024356101405233337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256020610140a3600160005260206000f350005b6306fdde03600051141561256657341561249b57600080fd5b60008060c052602060c020610180602082540161012060006002818352015b826101205160200211156124cd576124ef565b61012051850154610120516020028501525b81516001018083528114156124ba575b5050505050506101805160206001820306601f82010390506101e0610180516020818352015b826101e051111561252557612541565b60006101e0516101a001535b8151600101808352811415612515575b5050506020610160526040610180510160206001820306601f8201039050610160f350005b6395d89b41600051141561264a57341561257f57600080fd5b60018060c052602060c020610180602082540161012060006002818352015b826101205160200211156125b1576125d3565b61012051850154610120516020028501525b815160010180835281141561259e575b5050505050506101805160206001820306601f82010390506101e0610180516006818352015b826101e051111561260957612625565b60006101e0516101a001535b81516001018083528114156125f9575b5050506020610160526040610180510160206001820306601f8201039050610160f350005b638da5cb5b600051141561267157341561266357600080fd5b60025460005260206000f350005b63313ce567600051141561269857341561268a57600080fd5b60035460005260206000f350005b6318160ddd60005114156126bf5734156126b157600080fd5b60045460005260206000f350005b6370a0823160005114156127065734156126d857600080fd5b60043560205181106126e957600080fd5b50600560043560e05260c052604060c0205460005260206000f350005b63dd62ed3e600051141561276d57341561271f57600080fd5b600435602051811061273057600080fd5b50602435602051811061274257600080fd5b50600660043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f350005b634999eb8f60005114156127b457341561278657600080fd5b600435602051811061279757600080fd5b50600760043560e05260c052604060c0205460005260206000f350005b6351ecd2fa60005114156127fb5734156127cd57600080fd5b60043560205181106127de57600080fd5b50600860043560e05260c052604060c0205460005260206000f350005b63752708fb600051141561285557341561281457600080fd5b604060043560040161014037602060043560040135111561283457600080fd5b6009610140516101602060e05260c052604060c0205460005260206000f350005b632bc51c6d600051141561287c57341561286e57600080fd5b600b5460005260206000f350005b60006000fd5b6103f7612c79036103f76000396103f7612c79036000f30000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c12d1c73ee7dc3615ba4e37e4abfdbddfa38907e000000000000000000000000efe076de83ccf27bc893002439dec13f93564e84

Deployed Bytecode

0x600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a052600015610114575b6101605261014052600b543b6100b057600080fd5b600b5430186100be57600080fd5b6020610220602463f1bb10866101a052610140516101c0526101bc600b545afa6100e757600080fd5b60005061022051610180526000610180511161010257600080fd5b61018051600052600051610160515650005b60001561032f575b6101a052610140526101605261018052610140513b61013a57600080fd5b61014051301861014957600080fd5b602061026060246370a082316101e05230610200526101fc610140515afa61017057600080fd5b600050610260516101c052610140513b61018957600080fd5b61014051301861019857600080fd5b602061032060246370a082316102a052610160516102c0526102bc610140515afa6101c257600080fd5b6000506103205161028052610140513b6101db57600080fd5b6101405130186101ea57600080fd5b60206103e0604463a9059cbb610340526101605161036052610180516103805261035c6000610140515af161021e57600080fd5b6000506103e050610140513b61023357600080fd5b61014051301861024257600080fd5b60206104a060246370a0823161042052306104405261043c610140515afa61026957600080fd5b6000506104a05161040052610140513b61028257600080fd5b61014051301861029157600080fd5b602061056060246370a082316104e05261016051610500526104fc610140515afa6102bb57600080fd5b600050610560516104c0526102805161018051610280510110156102de57600080fd5b6101805161028051016104c051146102f557600080fd5b610180516101c051101561030857600080fd5b610180516101c05103610400511461031f57600080fd5b60016000526000516101a0515650005b60001561055c575b6101c0526101405261016052610180526101a052610140513b61035957600080fd5b61014051301861036857600080fd5b602061028060246370a0823161020052610180516102205261021c610140515afa61039257600080fd5b600050610280516101e052610140513b6103ab57600080fd5b6101405130186103ba57600080fd5b602061034060246370a082316102c052610160516102e0526102dc610140515afa6103e457600080fd5b600050610340516102a052610140513b6103fd57600080fd5b61014051301861040c57600080fd5b602061042060646323b872dd610360526101605161038052610180516103a0526101a0516103c05261037c6000610140515af161044857600080fd5b60005061042050610140513b61045d57600080fd5b61014051301861046c57600080fd5b60206104e060246370a0823161046052610180516104805261047c610140515afa61049657600080fd5b6000506104e05161044052610140513b6104af57600080fd5b6101405130186104be57600080fd5b60206105a060246370a0823161052052610160516105405261053c610140515afa6104e857600080fd5b6000506105a051610500526101a0516102a051101561050657600080fd5b6101a0516102a05103610500511461051d57600080fd5b6101e0516101a0516101e05101101561053557600080fd5b6101a0516101e05101610440511461054c57600080fd5b60016000526000516101c0515650005b6355776b7760005114156108a75762ffffff541561057957600080fd5b600162ffffff55341561058b57600080fd5b600435602051811061059c57600080fd5b50600760043560e05260c052604060c020546105b757600080fd5b6000602435114260443511166105cc57600080fd5b60096016610140527f6c6971756964697479416464696e67416c6c6f77656400000000000000000000610160526101405150610140516101602060e05260c052604060c0205461061b57600080fd5b6101405161016051610180516101a0516384ba3f696101e05260043561020052610200516006580161009b565b610260526101a052610180526101605261014052610260516101a0526305f5e10061067257600080fd5b6305f5e1006101a05115156106885760006106ab565b6024356101a0516024356101a0510204146106a257600080fd5b6024356101a051025b04610280526000600454111561075657600b543b6106c857600080fd5b600b5430186106d657600080fd5b6020610320602463fa75d1606102a052306102c0526102bc600b545afa6106fc57600080fd5b60005061032051610340526103405161071457600080fd5b6103405161028051151561072957600061074c565b600454610280516004546102805102041461074357600080fd5b60045461028051025b046102805261076b565b633b9aca0061028051101561076a57600080fd5b5b60053360e05260c052604060c020805461028051825401101561078d57600080fd5b61028051815401815550600480546102805182540110156107ad57600080fd5b61028051815401815550610140610380525b610380515160206103805101610380526103806103805110156107e1576107bf565b63d69c80376103a0526004356103c052336103e05230610400526024356104205261042051610400516103e0516103c05160065801610337565b61048052610360610380525b610380515260206103805103610380526101406103805110151561084a57610827565b61048051610360526103605161085f57600080fd5b61028051337fc17cea59c2955cb181b03393209566960365771dbba9dc3d510180e7cb31208860006000a361028051600052600062ffffff5560206000f350600062ffffff55005b6393ca2f8a6000511415610f375762ffffff54156108c457600080fd5b600162ffffff5534156108d657600080fd5b60043560205181106108e757600080fd5b50600860043560e05260c052604060c0205461090257600080fd5b42606435116000602435111661091757600080fd5b60243560053360e05260c052604060c02054101561093457600080fd5b60006004541161094357600080fd5b610140516384ba3f69610180526004356101a0526101a0516006580161009b565b61020052610140526102005161014052600b543b61098157600080fd5b600b54301861098f57600080fd5b60206102c0602463fa75d16061024052306102605261025c600b545afa6109b557600080fd5b6000506102c051610220526004546109cc57600080fd5b60045460243515156109df576000610a02565b61022051602435610220516024350204146109f957600080fd5b61022051602435025b046102e052600061030052600254331815610d5057620186a0610a2457600080fd5b620186a06024351515610a38576000610b21565b600a6008610320527f6f776e6572466565000000000000000000000000000000000000000000000000610340526103205150610320516103402060e05260c052604060c02054602435600a6008610320527f6f776e6572466565000000000000000000000000000000000000000000000000610340526103205150610320516103402060e05260c052604060c02054602435020414610ad657600080fd5b600a6008610320527f6f776e6572466565000000000000000000000000000000000000000000000000610340526103205150610320516103402060e05260c052604060c02054602435025b0461030052600a6008610400527f7472616465466565000000000000000000000000000000000000000000000000610420526104005150610400516104202060e05260c052604060c02054600a60086103a0527f6f776e65724665650000000000000000000000000000000000000000000000006103c0526103a051506103a0516103c02060e05260c052604060c02054620186a01015610bc157600080fd5b600a60086103a0527f6f776e65724665650000000000000000000000000000000000000000000000006103c0526103a051506103a0516103c02060e05260c052604060c02054620186a0031015610c1757600080fd5b600a6008610400527f7472616465466565000000000000000000000000000000000000000000000000610420526104005150610400516104202060e05260c052604060c02054600a60086103a0527f6f776e65724665650000000000000000000000000000000000000000000000006103c0526103a051506103a0516103c02060e05260c052604060c02054620186a01015610cb257600080fd5b600a60086103a0527f6f776e65724665650000000000000000000000000000000000000000000000006103c0526103a051506103a0516103c02060e05260c052604060c02054620186a0030361038052620186a0610d0f57600080fd5b620186a06102e0511515610d24576000610d4a565b610380516102e051610380516102e051020414610d4057600080fd5b610380516102e051025b046102e0525b61014051610d5d57600080fd5b610140516102e0511515610d72576000610d9b565b6305f5e1006102e0516305f5e1006102e051020414610d9057600080fd5b6305f5e1006102e051025b046102e05260053360e05260c052604060c02060243581541015610dbe57600080fd5b602435815403815550600560025460e05260c052604060c0208054610300518254011015610deb57600080fd5b610300518154018155506004610300516024351015610e0957600080fd5b610300516024350381541015610e1e57600080fd5b610300516024351015610e3057600080fd5b61030051602435038154038155506044356102e0511015610e5057600080fd5b610140610480525b61048051516020610480510161048052610480610480511015610e7a57610e58565b6366f4f0026104a0526004356104c052336104e0526102e05161050052610500516104e0516104c0516006580161011c565b61056052610460610480525b6104805152602061048051036104805261014061048051101515610edb57610eb8565b610560516104605261046051610ef057600080fd5b602435337fc2c3f06e49b9f15e7b4af9055e183b0d73362e033ad82a07dec9bf984017171960006000a36102e051600052600062ffffff5560206000f350600062ffffff55005b6391b26ae06000511415611394573415610f5057600080fd5b6004356020518110610f6157600080fd5b506024356020518110610f7357600080fd5b50610140516384ba3f69610180526004356101a0526101a0516006580161009b565b610200526101405261020051610140526101405161016051610180516101a0516101c0516101e05161020051610220516384ba3f696102605260243561028052610280516006580161009b565b6102e05261022052610200526101e0526101c0526101a0526101805261016052610140526102e05161022052600a6008610380527f74726164654665650000000000000000000000000000000000000000000000006103a0526103805150610380516103a02060e05260c052604060c02054600a6008610320527f6f776e6572466565000000000000000000000000000000000000000000000000610340526103205150610320516103402060e05260c052604060c02054620186a010156110a957600080fd5b600a6008610320527f6f776e6572466565000000000000000000000000000000000000000000000000610340526103205150610320516103402060e05260c052604060c02054620186a00310156110ff57600080fd5b600a6008610380527f74726164654665650000000000000000000000000000000000000000000000006103a0526103805150610380516103a02060e05260c052604060c02054600a6008610320527f6f776e6572466565000000000000000000000000000000000000000000000000610340526103205150610320516103402060e05260c052604060c02054620186a0101561119a57600080fd5b600a6008610320527f6f776e6572466565000000000000000000000000000000000000000000000000610340526103205150610320516103402060e05260c052604060c02054620186a0030361030052610220516111f757600080fd5b61022051620186a061120857600080fd5b620186a069021e19e0c9bab2400000151561122457600061125f565b6101405169021e19e0c9bab24000006101405169021e19e0c9bab240000002041461124e57600080fd5b6101405169021e19e0c9bab2400000025b151561126c57600061137f565b6103005169021e19e0c9bab240000015156112885760006112c3565b6101405169021e19e0c9bab24000006101405169021e19e0c9bab24000000204146112b257600080fd5b6101405169021e19e0c9bab2400000025b6103005169021e19e0c9bab240000015156112df57600061131a565b6101405169021e19e0c9bab24000006101405169021e19e0c9bab240000002041461130957600080fd5b6101405169021e19e0c9bab2400000025b02041461132657600080fd5b6103005169021e19e0c9bab2400000151561134257600061137d565b6101405169021e19e0c9bab24000006101405169021e19e0c9bab240000002041461136c57600080fd5b6101405169021e19e0c9bab2400000025b025b04046103e0526103e05160005260206000f350005b63126603b5600051141561146e5734156113ad57600080fd5b60243560205181106113be57600080fd5b5060443560205181106113d057600080fd5b5069021e19e0c9bab24000006113e557600080fd5b69021e19e0c9bab2400000602061020060446391b26ae061016052602435610180526044356101a05261017c6000305af161141f57600080fd5b6102005161022052600435151561143757600061145a565b610220516004356102205160043502041461145157600080fd5b61022051600435025b04610140526101405160005260206000f350005b6343d91bf16000511415611b1a5762ffffff541561148b57600080fd5b600162ffffff55341561149d57600080fd5b60043560205181106114ae57600080fd5b5060243560205181106114c057600080fd5b50600860243560e05260c052604060c02054600760043560e05260c052604060c02054166114ed57600080fd5b6000606435116000604435111661150357600080fd5b426084351161151157600080fd5b6009600e610140527f74726164696e67416c6c6f776564000000000000000000000000000000000000610160526101405150610140516101602060e05260c052604060c0205461156057600080fd5b6101405161016051610180516101a0516384ba3f696101e05260043561020052610200516006580161009b565b610260526101a052610180526101605261014052610260516101a05260443515156115b95760006115dc565b6101a0516044356101a0516044350204146115d357600080fd5b6101a051604435025b610280526305f5e1006115ee57600080fd5b6305f5e100620186a061160057600080fd5b620186a0610280511515611615576000611701565b600a60086102c0527f74726164654665650000000000000000000000000000000000000000000000006102e0526102c051506102c0516102e02060e05260c052604060c0205461028051600a60086102c0527f74726164654665650000000000000000000000000000000000000000000000006102e0526102c051506102c0516102e02060e05260c052604060c02054610280510204146116b557600080fd5b600a60086102c0527f74726164654665650000000000000000000000000000000000000000000000006102e0526102c051506102c0516102e02060e05260c052604060c0205461028051025b04046102a0526305f5e10061171557600080fd5b6305f5e100620186a061172757600080fd5b620186a061028051151561173c576000611828565b600a6008610340527f6f776e6572466565000000000000000000000000000000000000000000000000610360526103405150610340516103602060e05260c052604060c0205461028051600a6008610340527f6f776e6572466565000000000000000000000000000000000000000000000000610360526103405150610340516103602060e05260c052604060c02054610280510204146117dc57600080fd5b600a6008610340527f6f776e6572466565000000000000000000000000000000000000000000000000610360526103405150610340516103602060e05260c052604060c0205461028051025b040461032052600b543b61183b57600080fd5b600b54301861184957600080fd5b6020610440602463fa75d1606103c052306103e0526103dc600b545afa61186f57600080fd5b6000506104405161046052610460516102a0516104605101101561189257600080fd5b6102a05161046051016103a0526103a0516118ac57600080fd5b6103a05160045415156118c05760006118e3565b61032051600454610320516004540204146118da57600080fd5b61032051600454025b04610480526020610580606463126603b56104c0526044356104e05260043561050052602435610520526104dc6000305af161191e57600080fd5b610580516104a0526064356104a051101561193857600080fd5b600560025460e05260c052604060c020805461048051825401101561195c57600080fd5b610480518154018155506004805461048051825401101561197c57600080fd5b610480518154018155506101406105c0525b6105c0515160206105c051016105c0526105c06105c05110156119b05761198e565b63d69c80376105e0526004356106005233610620523061064052604435610660526106605161064051610620516106005160065801610337565b6106c0526105a06105c0525b6105c0515260206105c051036105c0526101406105c051101515611a19576119f6565b6106c0516105a0526105a051611a2e57600080fd5b610140610700525b61070051516020610700510161070052610700610700511015611a5857611a36565b6366f4f002610720526024356107405233610760526104a051610780526107805161076051610740516006580161011c565b6107e0526106e0610700525b6107005152602061070051036107005261014061070051101515611ab957611a96565b6107e0516106e0526106e051611ace57600080fd5b6044356024356004357f0d49f50d6dd629f4e4070731edb0abd680823ab1cbd43d89590522da4b5b32e760006000a46104a051600052600062ffffff5560206000f350600062ffffff55005b6323d7d1a86000511415611bf4573415611b3357600080fd5b6004356020518110611b4457600080fd5b5060243560028110611b5557600080fd5b506002543314611b6457600080fd5b602435600760043560e05260c052604060c020541415611b8357600080fd5b60026004353b611b9257600080fd5b6004353018611ba057600080fd5b60206101a0600463313ce5676101405261015c6004355afa611bc157600080fd5b6000506101a0511015611bd357600080fd5b602435600760043560e05260c052604060c02055600160005260206000f350005b6344dbd3346000511415611cce573415611c0d57600080fd5b6004356020518110611c1e57600080fd5b5060243560028110611c2f57600080fd5b506002543314611c3e57600080fd5b602435600860043560e05260c052604060c020541415611c5d57600080fd5b60026004353b611c6c57600080fd5b6004353018611c7a57600080fd5b60206101a0600463313ce5676101405261015c6004355afa611c9b57600080fd5b6000506101a0511015611cad57600080fd5b602435600860043560e05260c052604060c02055600160005260206000f350005b63903a10016000511415611db0573415611ce757600080fd5b6040600435600401610140376020600435600401351115611d0757600080fd5b60243560028110611d1757600080fd5b506002543314611d2657600080fd5b6024356009610140516101602060e05260c052604060c02055602435610140806020015160008251806020901315611d5d57600080fd5b8091901215611d6b57600080fd5b8061014051036101000a82049050905090507f22b59c94b6ec143f205f4ac5d8177280de0eab514e8d857330a1af17343e97bd60006000a3600160005260206000f350005b6380a0628b6000511415611e77573415611dc957600080fd5b6004356020518110611dda57600080fd5b506402540be400600560043560e05260c052604060c0205402608051811115611e0257600080fd5b610140526402540be40060045402608051811115611e1f57600080fd5b6101605260a051610140516101605180611e3857600080fd5b806402540be4008302059050905080608051901315611e5657600080fd5b8091901215611e6457600080fd5b610180526101805160005260206000f350005b63f2fde38b6000511415611efe573415611e9057600080fd5b6004356020518110611ea157600080fd5b50600060043518611eb157600080fd5b6002543314611ebf57600080fd5b6004356002556004356002547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060006000a3600160005260206000f350005b63993f4a2060005114156120ff573415611f1757600080fd5b6040600435600401610140376020600435600401351115611f3757600080fd5b6002543314611f4557600080fd5b600066038d7ea4c680006101a05260a0516101a0516024358181028115838383051417611f7157600080fd5b6402540be400810590509050905080608051901315611f8f57600080fd5b8091901215611f9d57600080fd5b121561200c576402540be4006402540be3ff66038d7ea4c680006101a05260a0516101a0516024358181028115838383051417611fd957600080fd5b6402540be400810590509050905080608051901315611ff757600080fd5b809190121561200557600080fd5b030561206a565b6402540be40066038d7ea4c680006101a05260a0516101a051602435818102811583838305141761203c57600080fd5b6402540be40081059050905090508060805190131561205a57600080fd5b809190121561206857600080fd5b055b600081121561207857600080fd5b600a610140516101602060e05260c052604060c020556024356101408060200151600082518060209013156120ac57600080fd5b80919012156120ba57600080fd5b8061014051036101000a82049050905090507fd8dd23b660d1a2cd022ce86c6122d03c591f721b3c2af378ecb404c0b605ddc760006000a3600160005260206000f350005b63e005cbbf60005114156121c057341561211857600080fd5b604060043560040161014037602060043560040135111561213857600080fd5b6402540be400600a610140516101602060e05260c052604060c020540260805181111561216457600080fd5b6101a05266038d7ea4c680006101c05260a0516101a0516101c0518061218957600080fd5b806402540be40083020590509050806080519013156121a757600080fd5b80919012156121b557600080fd5b60005260206000f350005b6386d1e02b60005114156122355734156121d957600080fd5b60043560205181106121ea57600080fd5b5060025433146121f957600080fd5b600435600b556004357f12ad2958c2383ce31dd51da097e673d81de88c202731500406f3afc70a8cf17060006000a2600160005260206000f350005b63a9059cbb60005114156122f257341561224e57600080fd5b600435602051811061225f57600080fd5b5060053360e05260c052604060c0206024358154101561227e57600080fd5b602435815403815550600560043560e05260c052604060c020805460243582540110156122aa57600080fd5b60243581540181555060243561014052600435337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020610140a3600160005260206000f350005b6323b872dd60005114156123fa57341561230b57600080fd5b600435602051811061231c57600080fd5b50602435602051811061232e57600080fd5b50600560043560e05260c052604060c0206044358154101561234f57600080fd5b604435815403815550600560243560e05260c052604060c0208054604435825401101561237b57600080fd5b604435815401815550600660043560e05260c052604060c0203360e05260c052604060c020604435815410156123b057600080fd5b604435815403815550604435610140526024356004357fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020610140a3600160005260206000f350005b63095ea7b3600051141561248257341561241357600080fd5b600435602051811061242457600080fd5b5060243560063360e05260c052604060c02060043560e05260c052604060c020556024356101405233337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256020610140a3600160005260206000f350005b6306fdde03600051141561256657341561249b57600080fd5b60008060c052602060c020610180602082540161012060006002818352015b826101205160200211156124cd576124ef565b61012051850154610120516020028501525b81516001018083528114156124ba575b5050505050506101805160206001820306601f82010390506101e0610180516020818352015b826101e051111561252557612541565b60006101e0516101a001535b8151600101808352811415612515575b5050506020610160526040610180510160206001820306601f8201039050610160f350005b6395d89b41600051141561264a57341561257f57600080fd5b60018060c052602060c020610180602082540161012060006002818352015b826101205160200211156125b1576125d3565b61012051850154610120516020028501525b815160010180835281141561259e575b5050505050506101805160206001820306601f82010390506101e0610180516006818352015b826101e051111561260957612625565b60006101e0516101a001535b81516001018083528114156125f9575b5050506020610160526040610180510160206001820306601f8201039050610160f350005b638da5cb5b600051141561267157341561266357600080fd5b60025460005260206000f350005b63313ce567600051141561269857341561268a57600080fd5b60035460005260206000f350005b6318160ddd60005114156126bf5734156126b157600080fd5b60045460005260206000f350005b6370a0823160005114156127065734156126d857600080fd5b60043560205181106126e957600080fd5b50600560043560e05260c052604060c0205460005260206000f350005b63dd62ed3e600051141561276d57341561271f57600080fd5b600435602051811061273057600080fd5b50602435602051811061274257600080fd5b50600660043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f350005b634999eb8f60005114156127b457341561278657600080fd5b600435602051811061279757600080fd5b50600760043560e05260c052604060c0205460005260206000f350005b6351ecd2fa60005114156127fb5734156127cd57600080fd5b60043560205181106127de57600080fd5b50600860043560e05260c052604060c0205460005260206000f350005b63752708fb600051141561285557341561281457600080fd5b604060043560040161014037602060043560040135111561283457600080fd5b6009610140516101602060e05260c052604060c0205460005260206000f350005b632bc51c6d600051141561287c57341561286e57600080fd5b600b5460005260206000f350005b60006000fd

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

0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c12d1c73ee7dc3615ba4e37e4abfdbddfa38907e000000000000000000000000efe076de83ccf27bc893002439dec13f93564e84
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f
Arg [1] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [2] : 000000000000000000000000c12d1c73ee7dc3615ba4e37e4abfdbddfa38907e
Arg [3] : 000000000000000000000000efe076de83ccf27bc893002439dec13f93564e84


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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