ETH Price: $2,121.00 (-1.54%)

Contract

0x4495467f9cD04faF5fa65ed34AF335d4e2e7e129
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Cancel177212602023-07-18 16:20:11980 days ago1689697211IN
0x4495467f...4e2e7e129
0 ETH0.0076277851.45044993
Deposit175783582023-06-28 14:17:111000 days ago1687961831IN
0x4495467f...4e2e7e129
0.12 ETH0.0049672118.45074117
Cancel175712252023-06-27 14:17:231001 days ago1687875443IN
0x4495467f...4e2e7e129
0 ETH0.0041591121.71227591
Cancel175712002023-06-27 14:12:231001 days ago1687875143IN
0x4495467f...4e2e7e129
0 ETH0.0045028923.92447511
Deposit175678582023-06-27 2:51:351001 days ago1687834295IN
0x4495467f...4e2e7e129
0.15 ETH0.0042401612.17346033
Deposit175665342023-06-26 22:23:351001 days ago1687818215IN
0x4495467f...4e2e7e129
0.05 ETH0.0048780111.91931129

Latest 5 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Deposit175783582023-06-28 14:17:111000 days ago1687961831
0x4495467f...4e2e7e129
0.07 ETH
Transfer175783582023-06-28 14:17:111000 days ago1687961831
0x4495467f...4e2e7e129
0.05 ETH
Deposit175678582023-06-27 2:51:351001 days ago1687834295
0x4495467f...4e2e7e129
0.1 ETH
Transfer175678582023-06-27 2:51:351001 days ago1687834295
0x4495467f...4e2e7e129
0.05 ETH
Transfer175665342023-06-26 22:23:351001 days ago1687818215
0x4495467f...4e2e7e129
0.05 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x500231C6...cDc29c1Ee
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Vyper_contract

Compiler Version
vyper:0.3.9

Optimization Enabled:
N/A

Other Settings:
shanghai EvmVersion, Apache-2.0 license

Contract Source Code (Vyper language format)

# @version 0.3.9

struct Deposit:
    path: DynArray[address, MAX_SIZE]
    amount1: uint256
    depositor: address

enum WithdrawType:
    CANCEL
    PROFIT_TAKING
    STOP_LOSS

interface ERC20:
    def balanceOf(_owner: address) -> uint256: view

interface WrappedEth:
    def deposit(): payable

interface UniswapV2Router:
    def WETH() -> address: pure
    def swapExactTokensForTokensSupportingFeeOnTransferTokens(amountIn: uint256, amountOutMin: uint256, path: DynArray[address, MAX_SIZE], to: address, deadline: uint256): nonpayable
    def swapExactTokensForETHSupportingFeeOnTransferTokens(amountIn: uint256, amountOutMin: uint256, path: DynArray[address, MAX_SIZE], to: address, deadline: uint256): nonpayable
    def getAmountsOut(amountIn: uint256, path: DynArray[address, MAX_SIZE]) -> DynArray[uint256, MAX_SIZE]: view

event Deposited:
    deposit_id: uint256
    token0: address
    token1: address
    amount0: uint256
    amount1: uint256
    depositor: address
    profit_taking: uint256
    stop_loss: uint256

event Withdrawn:
    deposit_id: uint256
    withdrawer: address
    withdraw_type: WithdrawType
    withdraw_amount: uint256

event UpdateCompass:
    old_compass: address
    new_compass: address

event UpdateRefundWallet:
    old_refund_wallet: address
    new_refund_wallet: address

event UpdateFee:
    old_fee: uint256
    new_fee: uint256

event SetPaloma:
    paloma: bytes32

WETH: immutable(address)
VETH: constant(address) = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE # Virtual ETH
MAX_SIZE: constant(uint256) = 8
ROUTER: immutable(address)
compass: public(address)
deposit_size: public(uint256)
deposits: public(HashMap[uint256, Deposit])
refund_wallet: public(address)
fee: public(uint256)
paloma: public(bytes32)

@external
def __init__(_compass: address, router: address, _refund_wallet: address, _fee: uint256):
    self.compass = _compass
    ROUTER = router
    WETH = UniswapV2Router(ROUTER).WETH()
    self.refund_wallet = _refund_wallet
    self.fee = _fee
    log UpdateCompass(empty(address), _compass)
    log UpdateRefundWallet(empty(address), _refund_wallet)
    log UpdateFee(0, _fee)

@internal
def _safe_approve(_token: address, _to: address, _value: uint256):
    _response: Bytes[32] = raw_call(
        _token,
        _abi_encode(_to, _value, method_id=method_id("approve(address,uint256)")),
        max_outsize=32
    )  # dev: failed approve
    if len(_response) > 0:
        assert convert(_response, bool) # dev: failed approve

@internal
def _safe_transfer_from(_token: address, _from: address, _to: address, _value: uint256):
    _response: Bytes[32] = raw_call(
        _token,
        _abi_encode(_from, _to, _value, method_id=method_id("transferFrom(address,address,uint256)")),
        max_outsize=32
    )  # dev: failed transferFrom
    if len(_response) > 0:
        assert convert(_response, bool) # dev: failed transferFrom

@external
@payable
@nonreentrant("lock")
def deposit(path: DynArray[address, MAX_SIZE], amount0: uint256, min_amount1: uint256, profit_taking: uint256, stop_loss: uint256):
    _value: uint256 = msg.value
    _fee: uint256 = self.fee
    assert _value >= _fee, "Insufficient fee"
    assert self.paloma != empty(bytes32), "Paloma not set"
    send(self.refund_wallet, _fee)
    _value = unsafe_sub(_value, _fee)
    assert len(path) >= 2, "Wrong path"
    _path: DynArray[address, MAX_SIZE] = path
    token0: address = path[0]
    last_index: uint256 = unsafe_sub(len(path), 1)
    token1: address = path[last_index]
    _amount0: uint256 = amount0
    if token0 == VETH:
        assert _value >= amount0, "Insufficient deposit"
        if _value > amount0:
            send(msg.sender, unsafe_sub(_value, amount0))
        WrappedEth(WETH).deposit(value=amount0)
        _path[0] = WETH
    else:
        send(msg.sender, _value)
        _amount0 = ERC20(token0).balanceOf(self)
        self._safe_transfer_from(token0, msg.sender, self, amount0)
        _amount0 = ERC20(token0).balanceOf(self) - _amount0
    if token1 == VETH:
        _path[last_index] = WETH
    self._safe_approve(_path[0], ROUTER, _amount0)
    _amount1: uint256 = ERC20(_path[last_index]).balanceOf(self)
    UniswapV2Router(ROUTER).swapExactTokensForTokensSupportingFeeOnTransferTokens(_amount0, min_amount1, _path, self, block.timestamp)
    _amount1 = ERC20(_path[last_index]).balanceOf(self) - _amount1
    assert _amount1 > 0, "Insufficient deposit"
    deposit_id: uint256 = self.deposit_size
    self.deposits[deposit_id] = Deposit({
        path: path,
        amount1: _amount1,
        depositor: msg.sender
    })
    self.deposit_size = unsafe_add(deposit_id, 1)
    log Deposited(deposit_id, token0, token1, amount0, _amount1, msg.sender, profit_taking, stop_loss)

@internal
def _withdraw(deposit_id: uint256, min_amount0: uint256, withdraw_type: WithdrawType) -> uint256:
    deposit: Deposit = self.deposits[deposit_id]
    if withdraw_type == WithdrawType.CANCEL:
        assert msg.sender == deposit.depositor, "Unauthorized"
    self.deposits[deposit_id] = Deposit({
        path: empty(DynArray[address, MAX_SIZE]),
        amount1: empty(uint256),
        depositor: empty(address)
    })
    assert deposit.amount1 > 0, "Empty deposit"
    last_index: uint256 = unsafe_sub(len(deposit.path), 1)
    path: DynArray[address, MAX_SIZE] = []
    for i in range(MAX_SIZE):
        path.append(deposit.path[unsafe_sub(last_index, i)])
        if i >= last_index:
            break
    if path[0] == VETH:
        path[0] = WETH
    if path[last_index] == VETH:
        path[last_index] = WETH
    self._safe_approve(path[0], ROUTER, deposit.amount1)
    _amount0: uint256 = 0
    if deposit.path[0] == VETH:
        _amount0 = deposit.depositor.balance
        UniswapV2Router(ROUTER).swapExactTokensForETHSupportingFeeOnTransferTokens(deposit.amount1, min_amount0, path, deposit.depositor, block.timestamp)
        _amount0 = deposit.depositor.balance - _amount0
    else:
        _amount0 = ERC20(path[last_index]).balanceOf(self)
        UniswapV2Router(ROUTER).swapExactTokensForTokensSupportingFeeOnTransferTokens(deposit.amount1, min_amount0, path, deposit.depositor, block.timestamp)
        _amount0 = ERC20(path[last_index]).balanceOf(self) - _amount0
    log Withdrawn(deposit_id, msg.sender, withdraw_type, _amount0)
    return _amount0

@external
def cancel(deposit_id: uint256, min_amount0: uint256) -> uint256:
    return self._withdraw(deposit_id, min_amount0, WithdrawType.CANCEL)

@external
def multiple_withdraw(deposit_ids: DynArray[uint256, MAX_SIZE], min_amounts0: DynArray[uint256, MAX_SIZE], withdraw_types: DynArray[WithdrawType, MAX_SIZE]):
    assert msg.sender == self.compass, "Unauthorized"
    _len: uint256 = len(deposit_ids)
    assert _len == len(min_amounts0) and _len == len(withdraw_types), "Validation error"
    _len = unsafe_add(unsafe_mul(unsafe_add(_len, 2), 96), 4)
    assert len(msg.data) == _len, "invalid payload"
    assert self.paloma == convert(slice(msg.data, unsafe_sub(_len, 32), 32), bytes32), "invalid paloma"
    for i in range(MAX_SIZE):
        if i >= len(deposit_ids):
            break
        self._withdraw(deposit_ids[i], min_amounts0[i], withdraw_types[i])

@external
def update_compass(new_compass: address):
    assert msg.sender == self.compass and len(msg.data) == 68 and convert(slice(msg.data, 36, 32), bytes32) == self.paloma, "Unauthorized"
    self.compass = new_compass
    log UpdateCompass(msg.sender, new_compass)

@external
def update_refund_wallet(new_refund_wallet: address):
    assert msg.sender == self.compass and len(msg.data) == 68 and convert(slice(msg.data, 36, 32), bytes32) == self.paloma, "Unauthorized"
    old_refund_wallet: address = self.refund_wallet
    self.refund_wallet = new_refund_wallet
    log UpdateRefundWallet(old_refund_wallet, new_refund_wallet)

@external
def update_fee(new_fee: uint256):
    assert msg.sender == self.compass and len(msg.data) == 68 and convert(slice(msg.data, 36, 32), bytes32) == self.paloma, "Unauthorized"
    old_fee: uint256 = self.fee
    self.fee = new_fee
    log UpdateFee(old_fee, new_fee)

@external
def set_paloma():
    assert msg.sender == self.compass and self.paloma == empty(bytes32) and len(msg.data) == 36, "Invalid"
    _paloma: bytes32 = convert(slice(msg.data, 4, 32), bytes32)
    self.paloma = _paloma
    log SetPaloma(_paloma)

Contract Security Audit

Contract ABI

API
[{"name":"Deposited","inputs":[{"name":"deposit_id","type":"uint256","indexed":false},{"name":"token0","type":"address","indexed":false},{"name":"token1","type":"address","indexed":false},{"name":"amount0","type":"uint256","indexed":false},{"name":"amount1","type":"uint256","indexed":false},{"name":"depositor","type":"address","indexed":false},{"name":"profit_taking","type":"uint256","indexed":false},{"name":"stop_loss","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Withdrawn","inputs":[{"name":"deposit_id","type":"uint256","indexed":false},{"name":"withdrawer","type":"address","indexed":false},{"name":"withdraw_type","type":"uint256","indexed":false},{"name":"withdraw_amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateCompass","inputs":[{"name":"old_compass","type":"address","indexed":false},{"name":"new_compass","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateRefundWallet","inputs":[{"name":"old_refund_wallet","type":"address","indexed":false},{"name":"new_refund_wallet","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateFee","inputs":[{"name":"old_fee","type":"uint256","indexed":false},{"name":"new_fee","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetPaloma","inputs":[{"name":"paloma","type":"bytes32","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_compass","type":"address"},{"name":"router","type":"address"},{"name":"_refund_wallet","type":"address"},{"name":"_fee","type":"uint256"}],"outputs":[]},{"stateMutability":"payable","type":"function","name":"deposit","inputs":[{"name":"path","type":"address[]"},{"name":"amount0","type":"uint256"},{"name":"min_amount1","type":"uint256"},{"name":"profit_taking","type":"uint256"},{"name":"stop_loss","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"cancel","inputs":[{"name":"deposit_id","type":"uint256"},{"name":"min_amount0","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"multiple_withdraw","inputs":[{"name":"deposit_ids","type":"uint256[]"},{"name":"min_amounts0","type":"uint256[]"},{"name":"withdraw_types","type":"uint256[]"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"update_compass","inputs":[{"name":"new_compass","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"update_refund_wallet","inputs":[{"name":"new_refund_wallet","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"update_fee","inputs":[{"name":"new_fee","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_paloma","inputs":[],"outputs":[]},{"stateMutability":"view","type":"function","name":"compass","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"deposit_size","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"deposits","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"tuple","components":[{"name":"path","type":"address[]"},{"name":"amount1","type":"uint256"},{"name":"depositor","type":"address"}]}]},{"stateMutability":"view","type":"function","name":"refund_wallet","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"fee","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"paloma","inputs":[],"outputs":[{"name":"","type":"bytes32"}]}]

0x611672515060206117a55f395f518060a01c6117a15760405260206117c55f395f518060a01c6117a15760605260206117e55f395f518060a01c6117a157608052346117a157604051600155606051611672526116725163ad5c464860a052602060a0600460bc845afa610075573d5f5f3e3d5ffd5b60203d106117a15760a0518060a01c6117a15760e05260e09050516116525260805160045560206118055f395f516005557fb682667b5b9327acc3f181a08e32c75a75f74ecb054e108a9c7269f64920ab4a5f60a05260405160c052604060a0a17f766266fd21d17d465fb39cab9d9ff8020a212598404ab12bfd59aa2de4dea6a25f60a05260805160c052604060a0a17f8987e6f43a6c6bf408c8c427dceb2f98377f859348939ef4ab7b770b510a395a5f60a05260206118055f395f5160c052604060a0a161165261014e61000039611692610000f36003361161000c57610fdc565b5f3560e01c63750c025b81186107285760c436106116415760043560040160088135116116415780355f816008811161164157801561006d57905b8060051b6020850101358060a01c611641578160051b6102000152600101818118610047575b5050806101e05250505f546002146116415760025f5534610300526005546103205261032051610300511015610102576010610340527f496e73756666696369656e7420666565000000000000000000000000000000006103605261034050610340518061036001601f825f031636823750506308c379a061030052602061032052601f19601f61034051011660440161031cfd5b60065461016e57600e610340527f50616c6f6d61206e6f74207365740000000000000000000000000000000000006103605261034050610340518061036001601f825f031636823750506308c379a061030052602061032052601f19601f61034051011660440161031cfd5b5f5f5f5f610320516004545ff115611641576103205161030051036103005260026101e05110156101fe57600a610340527f57726f6e672070617468000000000000000000000000000000000000000000006103605261034050610340518061036001601f825f031636823750506308c379a061030052602061032052601f19601f61034051011660440161031cfd5b6101e0518060051b806103608261020060045afa50508061034052506101e05115611641575f60051b61020001516104605260016101e0510361048052610480516101e0518110156116415760051b61020001516104a0526024356104c05273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6104605118610364576024356103005110156102ed5760146104e0527f496e73756666696369656e74206465706f736974000000000000000000000000610500526104e0506104e0518061050001601f825f031636823750506308c379a06104a05260206104c052601f19601f6104e05101166044016104bcfd5b60243561030051111561030f575f5f5f5f6024356103005103335ff115611641575b60206116525f395f5163d0e30db06104e052803b15611641575f6104e060046104fc602435855af1610343573d5f5f3e3d5ffd5b5060206116525f395f516103405115611641575f60051b610360015261041e565b5f5f5f5f61030051335ff11561164157610460516370a082316104e052306105005260206104e060246104fc845afa61039f573d5f5f3e3d5ffd5b60203d10611641576104e09050516104c05261046051604052336060523060805260243560a0526103ce61105f565b610460516370a082316104e052306105005260206104e060246104fc845afa6103f9573d5f5f3e3d5ffd5b60203d10611641576104e09050516104c05180820382811161164157905090506104c0525b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6104a0511861045d5760206116525f395f5161048051610340518110156116415760051b61036001525b6103405115611641575f60051b610360015160405260206116725f395f516060526104c05160805261048d610fe0565b61048051610340518110156116415760051b61036001516370a082316105005230610520526020610500602461051c845afa6104cb573d5f5f3e3d5ffd5b60203d10611641576105009050516104e05260206116725f395f51635c11d7956105005260a06104c0516105205260443561054052806105605280610520015f610340518083528060051b5f826008811161164157801561054657905b8060051b61036001518160051b602088010152600101818118610528575b505082016020019150509050810190503061058052426105a05250803b15611641575f6105006101c461051c5f855af1610582573d5f5f3e3d5ffd5b5061048051610340518110156116415760051b61036001516370a082316105005230610520526020610500602461051c845afa6105c1573d5f5f3e3d5ffd5b60203d10611641576105009050516104e05180820382811161164157905090506104e0526104e051610652576014610500527f496e73756666696369656e74206465706f7369740000000000000000000000006105205261050050610500518061052001601f825f031636823750506308c379a06104c05260206104e052601f19601f6105005101166044016104dcfd5b600254610500526003610500516020525f5260405f206101e0518060051b600183015f82601f0160051c600881116116415780156106a457905b8060051b61020001518184015560010181811861068c575b50505050808255506104e051600982015533600a82015550600161050051016002557f2281bb621c0a07568b02a200dd2287239d6448c538f83516307b7553ecf171e6610500516105205261046051610540526104a05161056052602435610580526104e0516105a052336105c052604060646105e037610100610520a160035f55005b346116415763eb8acce681186107445760015460405260206040f35b6331d72b2e811861075b5760025460405260206040f35b63b02c43d081186107f657602436106116415760208060405260036004356020525f5260405f208160400160608082528082015f84548083528060051b5f82600881116116415780156107c657905b8060018a0101548160051b6020880101526001018181186107aa575b5050820160200191505090508101905060098301546020830152600a830154604083015290509050810190506040f35b6322221b0c811861080d5760045460405260206040f35b63ddca3f4381186108245760055460405260206040f35b63c09f3291811861083b5760065460405260206040f35b62efa895811861086d5760443610611641576020604060046101a03760016101e0526108686106a06110e9565b6106a0f35b630be450008118610bd55760c43610611641576004356004016008813511611641578035602082018160051b80826106c0375050806106a05250506024356004016008813511611641578035602082018160051b80826107e0375050806107c052505060443560040160088135116116415780355f816008811161164157801561091957905b8060051b6020850101358060031c611641578160051b61090001526001018181186108f3575b5050806108e052505060015433181561099157600c610a00527f556e617574686f72697a65640000000000000000000000000000000000000000610a2052610a0050610a005180610a2001601f825f031636823750506308c379a06109c05260206109e052601f19601f610a005101166044016109dcfd5b6106a051610a00526107c051610a0051186109b5576108e051610a005118156109b7565b5f5b610a20576010610a20527f56616c69646174696f6e206572726f7200000000000000000000000000000000610a4052610a2050610a205180610a4001601f825f031636823750506308c379a06109e0526020610a0052601f19601f610a205101166044016109fcfd5b600460606002610a0051010201610a0052610a0051361815610aa157600f610a20527f696e76616c6964207061796c6f61640000000000000000000000000000000000610a4052610a2050610a205180610a4001601f825f031636823750506308c379a06109e0526020610a0052601f19601f610a205101166044016109fcfd5b3660206020610a0051030111611641576020610a205260206020610a005103610a4037610a20805160200360031b6020820151811c811b905090506006541815610b4a57600e610a60527f696e76616c69642070616c6f6d61000000000000000000000000000000000000610a8052610a6050610a605180610a8001601f825f031636823750506308c379a0610a20526020610a4052601f19601f610a60510116604401610a3cfd5b5f6008905b80610a20526106a051610a205110610b6657610bd1565b610a20516106a0518110156116415760051b6106c001516101a052610a20516107c0518110156116415760051b6107e001516101c052610a20516108e0518110156116415760051b61090001516101e052610bc2610a406110e9565b610a4050600101818118610b4f575b5050005b636974af698118610cdc5760243610611641576004358060a01c611641576040526001543318610c425760443618610c3c5760065436604411611641576020606052602060246080376060805160200360031b6020820151811c811b905090501815610c44565b5f610c44565b5f5b610ca457600c60a0527f556e617574686f72697a6564000000000000000000000000000000000000000060c05260a05060a0518060c001601f825f031636823750506308c379a06060526020608052601f19601f60a0510116604401607cfd5b6040516001557fb682667b5b9327acc3f181a08e32c75a75f74ecb054e108a9c7269f64920ab4a3360605260405160805260406060a1005b63c98856aa8118610deb5760243610611641576004358060a01c611641576040526001543318610d495760443618610d435760065436604411611641576020606052602060246080376060805160200360031b6020820151811c811b905090501815610d4b565b5f610d4b565b5f5b610dab57600c60a0527f556e617574686f72697a6564000000000000000000000000000000000000000060c05260a05060a0518060c001601f825f031636823750506308c379a06060526020608052601f19601f60a0510116604401607cfd5b6004546060526040516004557f766266fd21d17d465fb39cab9d9ff8020a212598404ab12bfd59aa2de4dea6a260605160805260405160a05260406080a1005b63fbd159558118610eec5760243610611641576001543318610e4a5760443618610e445760065436604411611641576020604052602060246060376040805160200360031b6020820151811c811b905090501815610e4c565b5f610e4c565b5f5b610eac57600c6080527f556e617574686f72697a6564000000000000000000000000000000000000000060a0526080506080518060a001601f825f031636823750506308c379a06040526020606052601f19601f6080510116604401605cfd5b6005546040526004356005557f8987e6f43a6c6bf408c8c427dceb2f98377f859348939ef4ab7b770b510a395a60405160605260043560805260406060a1005b6323fde8e28118610fda576001543318610f1757600654610f11576024361815610f19565b5f610f19565b5f5b610f785760076040527f496e76616c69640000000000000000000000000000000000000000000000000060605260405060405180606001601f825f031636823750506308c379a05f526020602052601f19601f6040510116604401601cfd5b36602411611641576020606052602060046080376060805160200360031b6020820151811c811b905090506040526040516006557f2700ed1ef9147da3f7fdcaae08cbe6d1c92ec7fa6bace169d9c49e398e3cb1ca60405160605260206060a1005b505b5f5ffd5b63095ea7b360e4526004606051610104526080516101245260400160e05260e050602061018060e0516101005f6040515af161101e573d5f5f3e3d5ffd5b3d602081183d602010021861016052610160805160208201805160c052508060a052505060a0511561105d5760c05160a05160200360031b1c15611641575b565b6323b872dd610104526004606051610124526080516101445260a05161016452606001610100526101005060206101c0610100516101205f6040515af16110a8573d5f5f3e3d5ffd5b3d602081183d60201002186101a0526101a0805160208201805160e052508060c052505060c051156110e75760e05160c05160200360031b1c15611641575b565b60036101a0516020525f5260405f208054600182018160051b5f81601f0160051c6008811161164157801561113257905b808401548160051b610220015260010181811861111a575b50505050806102005250600981015461032052600a810154610340525060016101e051186111ca57610340513318156111ca57600c610360527f556e617574686f72697a656400000000000000000000000000000000000000006103805261036050610360518061038001601f825f031636823750506308c379a061032052602061034052601f19601f61036051011660440161033cfd5b60036101a0516020525f5260405f205f81555f60098201555f600a820155506103205161125657600d610360527f456d707479206465706f736974000000000000000000000000000000000000006103805261036050610360518061038001601f825f031636823750506308c379a061032052602061034052601f19601f61036051011660440161033cfd5b60016102005103610360525f610380525f6008905b806104a0526103805160078111611641576104a0516103605103610200518110156116415760051b61022001518160051b6103a00152600181016103805250610360516104a051106112bc576112c7565b60010181811861126b575b505073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6103805115611641575f60051b6103a00151186113115760206116525f395f516103805115611641575f60051b6103a001525b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61036051610380518110156116415760051b6103a00151186113635760206116525f395f5161036051610380518110156116415760051b6103a001525b6103805115611641575f60051b6103a0015160405260206116725f395f5160605261032051608052611393610fe0565b5f6104a05273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6102005115611641575f60051b6102200151186114975761034051316104a05260206116725f395f5163791ac9476104c05260a0610320516104e0526101c051610500528061052052806104e0015f610380518083528060051b5f826008811161164157801561143757905b8060051b6103a001518160051b602088010152600101818118611419575b505082016020019150509050810190506103405161054052426105605250803b15611641575f6104c06101c46104dc5f855af1611476573d5f5f3e3d5ffd5b5061034051316104a05180820382811161164157905090506104a0526115f4565b61036051610380518110156116415760051b6103a001516370a082316104c052306104e05260206104c060246104dc845afa6114d5573d5f5f3e3d5ffd5b60203d10611641576104c09050516104a05260206116725f395f51635c11d7956104c05260a0610320516104e0526101c051610500528061052052806104e0015f610380518083528060051b5f826008811161164157801561155157905b8060051b6103a001518160051b602088010152600101818118611533575b505082016020019150509050810190506103405161054052426105605250803b15611641575f6104c06101c46104dc5f855af1611590573d5f5f3e3d5ffd5b5061036051610380518110156116415760051b6103a001516370a082316104c052306104e05260206104c060246104dc845afa6115cf573d5f5f3e3d5ffd5b60203d10611641576104c09050516104a05180820382811161164157905090506104a0525b7f1c84cc0f96161bdafea718a9094dd21c21d1fb2f9ca2ebb9bd4e39918efbaace6101a0516104c052336104e0526101e051610500526104a0516105205260806104c0a16104a051815250565b5f80fda165767970657283000309000b005b5f80fd0000000000000000000000007eec3e2f4d567794b927b6d904fbf973bc8d15e60000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000006dc0a87638cd75cc700ccdb226c7ab6c054bc70b00000000000000000000000000000000000000000000000000b1a2bc2ec50000

Deployed Bytecode

0x6003361161000c57610fdc565b5f3560e01c63750c025b81186107285760c436106116415760043560040160088135116116415780355f816008811161164157801561006d57905b8060051b6020850101358060a01c611641578160051b6102000152600101818118610047575b5050806101e05250505f546002146116415760025f5534610300526005546103205261032051610300511015610102576010610340527f496e73756666696369656e7420666565000000000000000000000000000000006103605261034050610340518061036001601f825f031636823750506308c379a061030052602061032052601f19601f61034051011660440161031cfd5b60065461016e57600e610340527f50616c6f6d61206e6f74207365740000000000000000000000000000000000006103605261034050610340518061036001601f825f031636823750506308c379a061030052602061032052601f19601f61034051011660440161031cfd5b5f5f5f5f610320516004545ff115611641576103205161030051036103005260026101e05110156101fe57600a610340527f57726f6e672070617468000000000000000000000000000000000000000000006103605261034050610340518061036001601f825f031636823750506308c379a061030052602061032052601f19601f61034051011660440161031cfd5b6101e0518060051b806103608261020060045afa50508061034052506101e05115611641575f60051b61020001516104605260016101e0510361048052610480516101e0518110156116415760051b61020001516104a0526024356104c05273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6104605118610364576024356103005110156102ed5760146104e0527f496e73756666696369656e74206465706f736974000000000000000000000000610500526104e0506104e0518061050001601f825f031636823750506308c379a06104a05260206104c052601f19601f6104e05101166044016104bcfd5b60243561030051111561030f575f5f5f5f6024356103005103335ff115611641575b60206116525f395f5163d0e30db06104e052803b15611641575f6104e060046104fc602435855af1610343573d5f5f3e3d5ffd5b5060206116525f395f516103405115611641575f60051b610360015261041e565b5f5f5f5f61030051335ff11561164157610460516370a082316104e052306105005260206104e060246104fc845afa61039f573d5f5f3e3d5ffd5b60203d10611641576104e09050516104c05261046051604052336060523060805260243560a0526103ce61105f565b610460516370a082316104e052306105005260206104e060246104fc845afa6103f9573d5f5f3e3d5ffd5b60203d10611641576104e09050516104c05180820382811161164157905090506104c0525b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6104a0511861045d5760206116525f395f5161048051610340518110156116415760051b61036001525b6103405115611641575f60051b610360015160405260206116725f395f516060526104c05160805261048d610fe0565b61048051610340518110156116415760051b61036001516370a082316105005230610520526020610500602461051c845afa6104cb573d5f5f3e3d5ffd5b60203d10611641576105009050516104e05260206116725f395f51635c11d7956105005260a06104c0516105205260443561054052806105605280610520015f610340518083528060051b5f826008811161164157801561054657905b8060051b61036001518160051b602088010152600101818118610528575b505082016020019150509050810190503061058052426105a05250803b15611641575f6105006101c461051c5f855af1610582573d5f5f3e3d5ffd5b5061048051610340518110156116415760051b61036001516370a082316105005230610520526020610500602461051c845afa6105c1573d5f5f3e3d5ffd5b60203d10611641576105009050516104e05180820382811161164157905090506104e0526104e051610652576014610500527f496e73756666696369656e74206465706f7369740000000000000000000000006105205261050050610500518061052001601f825f031636823750506308c379a06104c05260206104e052601f19601f6105005101166044016104dcfd5b600254610500526003610500516020525f5260405f206101e0518060051b600183015f82601f0160051c600881116116415780156106a457905b8060051b61020001518184015560010181811861068c575b50505050808255506104e051600982015533600a82015550600161050051016002557f2281bb621c0a07568b02a200dd2287239d6448c538f83516307b7553ecf171e6610500516105205261046051610540526104a05161056052602435610580526104e0516105a052336105c052604060646105e037610100610520a160035f55005b346116415763eb8acce681186107445760015460405260206040f35b6331d72b2e811861075b5760025460405260206040f35b63b02c43d081186107f657602436106116415760208060405260036004356020525f5260405f208160400160608082528082015f84548083528060051b5f82600881116116415780156107c657905b8060018a0101548160051b6020880101526001018181186107aa575b5050820160200191505090508101905060098301546020830152600a830154604083015290509050810190506040f35b6322221b0c811861080d5760045460405260206040f35b63ddca3f4381186108245760055460405260206040f35b63c09f3291811861083b5760065460405260206040f35b62efa895811861086d5760443610611641576020604060046101a03760016101e0526108686106a06110e9565b6106a0f35b630be450008118610bd55760c43610611641576004356004016008813511611641578035602082018160051b80826106c0375050806106a05250506024356004016008813511611641578035602082018160051b80826107e0375050806107c052505060443560040160088135116116415780355f816008811161164157801561091957905b8060051b6020850101358060031c611641578160051b61090001526001018181186108f3575b5050806108e052505060015433181561099157600c610a00527f556e617574686f72697a65640000000000000000000000000000000000000000610a2052610a0050610a005180610a2001601f825f031636823750506308c379a06109c05260206109e052601f19601f610a005101166044016109dcfd5b6106a051610a00526107c051610a0051186109b5576108e051610a005118156109b7565b5f5b610a20576010610a20527f56616c69646174696f6e206572726f7200000000000000000000000000000000610a4052610a2050610a205180610a4001601f825f031636823750506308c379a06109e0526020610a0052601f19601f610a205101166044016109fcfd5b600460606002610a0051010201610a0052610a0051361815610aa157600f610a20527f696e76616c6964207061796c6f61640000000000000000000000000000000000610a4052610a2050610a205180610a4001601f825f031636823750506308c379a06109e0526020610a0052601f19601f610a205101166044016109fcfd5b3660206020610a0051030111611641576020610a205260206020610a005103610a4037610a20805160200360031b6020820151811c811b905090506006541815610b4a57600e610a60527f696e76616c69642070616c6f6d61000000000000000000000000000000000000610a8052610a6050610a605180610a8001601f825f031636823750506308c379a0610a20526020610a4052601f19601f610a60510116604401610a3cfd5b5f6008905b80610a20526106a051610a205110610b6657610bd1565b610a20516106a0518110156116415760051b6106c001516101a052610a20516107c0518110156116415760051b6107e001516101c052610a20516108e0518110156116415760051b61090001516101e052610bc2610a406110e9565b610a4050600101818118610b4f575b5050005b636974af698118610cdc5760243610611641576004358060a01c611641576040526001543318610c425760443618610c3c5760065436604411611641576020606052602060246080376060805160200360031b6020820151811c811b905090501815610c44565b5f610c44565b5f5b610ca457600c60a0527f556e617574686f72697a6564000000000000000000000000000000000000000060c05260a05060a0518060c001601f825f031636823750506308c379a06060526020608052601f19601f60a0510116604401607cfd5b6040516001557fb682667b5b9327acc3f181a08e32c75a75f74ecb054e108a9c7269f64920ab4a3360605260405160805260406060a1005b63c98856aa8118610deb5760243610611641576004358060a01c611641576040526001543318610d495760443618610d435760065436604411611641576020606052602060246080376060805160200360031b6020820151811c811b905090501815610d4b565b5f610d4b565b5f5b610dab57600c60a0527f556e617574686f72697a6564000000000000000000000000000000000000000060c05260a05060a0518060c001601f825f031636823750506308c379a06060526020608052601f19601f60a0510116604401607cfd5b6004546060526040516004557f766266fd21d17d465fb39cab9d9ff8020a212598404ab12bfd59aa2de4dea6a260605160805260405160a05260406080a1005b63fbd159558118610eec5760243610611641576001543318610e4a5760443618610e445760065436604411611641576020604052602060246060376040805160200360031b6020820151811c811b905090501815610e4c565b5f610e4c565b5f5b610eac57600c6080527f556e617574686f72697a6564000000000000000000000000000000000000000060a0526080506080518060a001601f825f031636823750506308c379a06040526020606052601f19601f6080510116604401605cfd5b6005546040526004356005557f8987e6f43a6c6bf408c8c427dceb2f98377f859348939ef4ab7b770b510a395a60405160605260043560805260406060a1005b6323fde8e28118610fda576001543318610f1757600654610f11576024361815610f19565b5f610f19565b5f5b610f785760076040527f496e76616c69640000000000000000000000000000000000000000000000000060605260405060405180606001601f825f031636823750506308c379a05f526020602052601f19601f6040510116604401601cfd5b36602411611641576020606052602060046080376060805160200360031b6020820151811c811b905090506040526040516006557f2700ed1ef9147da3f7fdcaae08cbe6d1c92ec7fa6bace169d9c49e398e3cb1ca60405160605260206060a1005b505b5f5ffd5b63095ea7b360e4526004606051610104526080516101245260400160e05260e050602061018060e0516101005f6040515af161101e573d5f5f3e3d5ffd5b3d602081183d602010021861016052610160805160208201805160c052508060a052505060a0511561105d5760c05160a05160200360031b1c15611641575b565b6323b872dd610104526004606051610124526080516101445260a05161016452606001610100526101005060206101c0610100516101205f6040515af16110a8573d5f5f3e3d5ffd5b3d602081183d60201002186101a0526101a0805160208201805160e052508060c052505060c051156110e75760e05160c05160200360031b1c15611641575b565b60036101a0516020525f5260405f208054600182018160051b5f81601f0160051c6008811161164157801561113257905b808401548160051b610220015260010181811861111a575b50505050806102005250600981015461032052600a810154610340525060016101e051186111ca57610340513318156111ca57600c610360527f556e617574686f72697a656400000000000000000000000000000000000000006103805261036050610360518061038001601f825f031636823750506308c379a061032052602061034052601f19601f61036051011660440161033cfd5b60036101a0516020525f5260405f205f81555f60098201555f600a820155506103205161125657600d610360527f456d707479206465706f736974000000000000000000000000000000000000006103805261036050610360518061038001601f825f031636823750506308c379a061032052602061034052601f19601f61036051011660440161033cfd5b60016102005103610360525f610380525f6008905b806104a0526103805160078111611641576104a0516103605103610200518110156116415760051b61022001518160051b6103a00152600181016103805250610360516104a051106112bc576112c7565b60010181811861126b575b505073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6103805115611641575f60051b6103a00151186113115760206116525f395f516103805115611641575f60051b6103a001525b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61036051610380518110156116415760051b6103a00151186113635760206116525f395f5161036051610380518110156116415760051b6103a001525b6103805115611641575f60051b6103a0015160405260206116725f395f5160605261032051608052611393610fe0565b5f6104a05273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6102005115611641575f60051b6102200151186114975761034051316104a05260206116725f395f5163791ac9476104c05260a0610320516104e0526101c051610500528061052052806104e0015f610380518083528060051b5f826008811161164157801561143757905b8060051b6103a001518160051b602088010152600101818118611419575b505082016020019150509050810190506103405161054052426105605250803b15611641575f6104c06101c46104dc5f855af1611476573d5f5f3e3d5ffd5b5061034051316104a05180820382811161164157905090506104a0526115f4565b61036051610380518110156116415760051b6103a001516370a082316104c052306104e05260206104c060246104dc845afa6114d5573d5f5f3e3d5ffd5b60203d10611641576104c09050516104a05260206116725f395f51635c11d7956104c05260a0610320516104e0526101c051610500528061052052806104e0015f610380518083528060051b5f826008811161164157801561155157905b8060051b6103a001518160051b602088010152600101818118611533575b505082016020019150509050810190506103405161054052426105605250803b15611641575f6104c06101c46104dc5f855af1611590573d5f5f3e3d5ffd5b5061036051610380518110156116415760051b6103a001516370a082316104c052306104e05260206104c060246104dc845afa6115cf573d5f5f3e3d5ffd5b60203d10611641576104c09050516104a05180820382811161164157905090506104a0525b7f1c84cc0f96161bdafea718a9094dd21c21d1fb2f9ca2ebb9bd4e39918efbaace6101a0516104c052336104e0526101e051610500526104a0516105205260806104c0a16104a051815250565b5f80fda165767970657283000309000b000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ 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.