Source Code
Latest 6 from a total of 6 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Cancel | 17721260 | 980 days ago | IN | 0 ETH | 0.00762778 | ||||
| Deposit | 17578358 | 1000 days ago | IN | 0.12 ETH | 0.00496721 | ||||
| Cancel | 17571225 | 1001 days ago | IN | 0 ETH | 0.00415911 | ||||
| Cancel | 17571200 | 1001 days ago | IN | 0 ETH | 0.00450289 | ||||
| Deposit | 17567858 | 1001 days ago | IN | 0.15 ETH | 0.00424016 | ||||
| Deposit | 17566534 | 1001 days ago | IN | 0.05 ETH | 0.00487801 |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
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
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
- No Contract Security Audit Submitted- Submit Audit Here
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"}]}]Contract Creation Code
0x611672515060206117a55f395f518060a01c6117a15760405260206117c55f395f518060a01c6117a15760605260206117e55f395f518060a01c6117a157608052346117a157604051600155606051611672526116725163ad5c464860a052602060a0600460bc845afa610075573d5f5f3e3d5ffd5b60203d106117a15760a0518060a01c6117a15760e05260e09050516116525260805160045560206118055f395f516005557fb682667b5b9327acc3f181a08e32c75a75f74ecb054e108a9c7269f64920ab4a5f60a05260405160c052604060a0a17f766266fd21d17d465fb39cab9d9ff8020a212598404ab12bfd59aa2de4dea6a25f60a05260805160c052604060a0a17f8987e6f43a6c6bf408c8c427dceb2f98377f859348939ef4ab7b770b510a395a5f60a05260206118055f395f5160c052604060a0a161165261014e61000039611692610000f36003361161000c57610fdc565b5f3560e01c63750c025b81186107285760c436106116415760043560040160088135116116415780355f816008811161164157801561006d57905b8060051b6020850101358060a01c611641578160051b6102000152600101818118610047575b5050806101e05250505f546002146116415760025f5534610300526005546103205261032051610300511015610102576010610340527f496e73756666696369656e7420666565000000000000000000000000000000006103605261034050610340518061036001601f825f031636823750506308c379a061030052602061032052601f19601f61034051011660440161031cfd5b60065461016e57600e610340527f50616c6f6d61206e6f74207365740000000000000000000000000000000000006103605261034050610340518061036001601f825f031636823750506308c379a061030052602061032052601f19601f61034051011660440161031cfd5b5f5f5f5f610320516004545ff115611641576103205161030051036103005260026101e05110156101fe57600a610340527f57726f6e672070617468000000000000000000000000000000000000000000006103605261034050610340518061036001601f825f031636823750506308c379a061030052602061032052601f19601f61034051011660440161031cfd5b6101e0518060051b806103608261020060045afa50508061034052506101e05115611641575f60051b61020001516104605260016101e0510361048052610480516101e0518110156116415760051b61020001516104a0526024356104c05273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6104605118610364576024356103005110156102ed5760146104e0527f496e73756666696369656e74206465706f736974000000000000000000000000610500526104e0506104e0518061050001601f825f031636823750506308c379a06104a05260206104c052601f19601f6104e05101166044016104bcfd5b60243561030051111561030f575f5f5f5f6024356103005103335ff115611641575b60206116525f395f5163d0e30db06104e052803b15611641575f6104e060046104fc602435855af1610343573d5f5f3e3d5ffd5b5060206116525f395f516103405115611641575f60051b610360015261041e565b5f5f5f5f61030051335ff11561164157610460516370a082316104e052306105005260206104e060246104fc845afa61039f573d5f5f3e3d5ffd5b60203d10611641576104e09050516104c05261046051604052336060523060805260243560a0526103ce61105f565b610460516370a082316104e052306105005260206104e060246104fc845afa6103f9573d5f5f3e3d5ffd5b60203d10611641576104e09050516104c05180820382811161164157905090506104c0525b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6104a0511861045d5760206116525f395f5161048051610340518110156116415760051b61036001525b6103405115611641575f60051b610360015160405260206116725f395f516060526104c05160805261048d610fe0565b61048051610340518110156116415760051b61036001516370a082316105005230610520526020610500602461051c845afa6104cb573d5f5f3e3d5ffd5b60203d10611641576105009050516104e05260206116725f395f51635c11d7956105005260a06104c0516105205260443561054052806105605280610520015f610340518083528060051b5f826008811161164157801561054657905b8060051b61036001518160051b602088010152600101818118610528575b505082016020019150509050810190503061058052426105a05250803b15611641575f6105006101c461051c5f855af1610582573d5f5f3e3d5ffd5b5061048051610340518110156116415760051b61036001516370a082316105005230610520526020610500602461051c845afa6105c1573d5f5f3e3d5ffd5b60203d10611641576105009050516104e05180820382811161164157905090506104e0526104e051610652576014610500527f496e73756666696369656e74206465706f7369740000000000000000000000006105205261050050610500518061052001601f825f031636823750506308c379a06104c05260206104e052601f19601f6105005101166044016104dcfd5b600254610500526003610500516020525f5260405f206101e0518060051b600183015f82601f0160051c600881116116415780156106a457905b8060051b61020001518184015560010181811861068c575b50505050808255506104e051600982015533600a82015550600161050051016002557f2281bb621c0a07568b02a200dd2287239d6448c538f83516307b7553ecf171e6610500516105205261046051610540526104a05161056052602435610580526104e0516105a052336105c052604060646105e037610100610520a160035f55005b346116415763eb8acce681186107445760015460405260206040f35b6331d72b2e811861075b5760025460405260206040f35b63b02c43d081186107f657602436106116415760208060405260036004356020525f5260405f208160400160608082528082015f84548083528060051b5f82600881116116415780156107c657905b8060018a0101548160051b6020880101526001018181186107aa575b5050820160200191505090508101905060098301546020830152600a830154604083015290509050810190506040f35b6322221b0c811861080d5760045460405260206040f35b63ddca3f4381186108245760055460405260206040f35b63c09f3291811861083b5760065460405260206040f35b62efa895811861086d5760443610611641576020604060046101a03760016101e0526108686106a06110e9565b6106a0f35b630be450008118610bd55760c43610611641576004356004016008813511611641578035602082018160051b80826106c0375050806106a05250506024356004016008813511611641578035602082018160051b80826107e0375050806107c052505060443560040160088135116116415780355f816008811161164157801561091957905b8060051b6020850101358060031c611641578160051b61090001526001018181186108f3575b5050806108e052505060015433181561099157600c610a00527f556e617574686f72697a65640000000000000000000000000000000000000000610a2052610a0050610a005180610a2001601f825f031636823750506308c379a06109c05260206109e052601f19601f610a005101166044016109dcfd5b6106a051610a00526107c051610a0051186109b5576108e051610a005118156109b7565b5f5b610a20576010610a20527f56616c69646174696f6e206572726f7200000000000000000000000000000000610a4052610a2050610a205180610a4001601f825f031636823750506308c379a06109e0526020610a0052601f19601f610a205101166044016109fcfd5b600460606002610a0051010201610a0052610a0051361815610aa157600f610a20527f696e76616c6964207061796c6f61640000000000000000000000000000000000610a4052610a2050610a205180610a4001601f825f031636823750506308c379a06109e0526020610a0052601f19601f610a205101166044016109fcfd5b3660206020610a0051030111611641576020610a205260206020610a005103610a4037610a20805160200360031b6020820151811c811b905090506006541815610b4a57600e610a60527f696e76616c69642070616c6f6d61000000000000000000000000000000000000610a8052610a6050610a605180610a8001601f825f031636823750506308c379a0610a20526020610a4052601f19601f610a60510116604401610a3cfd5b5f6008905b80610a20526106a051610a205110610b6657610bd1565b610a20516106a0518110156116415760051b6106c001516101a052610a20516107c0518110156116415760051b6107e001516101c052610a20516108e0518110156116415760051b61090001516101e052610bc2610a406110e9565b610a4050600101818118610b4f575b5050005b636974af698118610cdc5760243610611641576004358060a01c611641576040526001543318610c425760443618610c3c5760065436604411611641576020606052602060246080376060805160200360031b6020820151811c811b905090501815610c44565b5f610c44565b5f5b610ca457600c60a0527f556e617574686f72697a6564000000000000000000000000000000000000000060c05260a05060a0518060c001601f825f031636823750506308c379a06060526020608052601f19601f60a0510116604401607cfd5b6040516001557fb682667b5b9327acc3f181a08e32c75a75f74ecb054e108a9c7269f64920ab4a3360605260405160805260406060a1005b63c98856aa8118610deb5760243610611641576004358060a01c611641576040526001543318610d495760443618610d435760065436604411611641576020606052602060246080376060805160200360031b6020820151811c811b905090501815610d4b565b5f610d4b565b5f5b610dab57600c60a0527f556e617574686f72697a6564000000000000000000000000000000000000000060c05260a05060a0518060c001601f825f031636823750506308c379a06060526020608052601f19601f60a0510116604401607cfd5b6004546060526040516004557f766266fd21d17d465fb39cab9d9ff8020a212598404ab12bfd59aa2de4dea6a260605160805260405160a05260406080a1005b63fbd159558118610eec5760243610611641576001543318610e4a5760443618610e445760065436604411611641576020604052602060246060376040805160200360031b6020820151811c811b905090501815610e4c565b5f610e4c565b5f5b610eac57600c6080527f556e617574686f72697a6564000000000000000000000000000000000000000060a0526080506080518060a001601f825f031636823750506308c379a06040526020606052601f19601f6080510116604401605cfd5b6005546040526004356005557f8987e6f43a6c6bf408c8c427dceb2f98377f859348939ef4ab7b770b510a395a60405160605260043560805260406060a1005b6323fde8e28118610fda576001543318610f1757600654610f11576024361815610f19565b5f610f19565b5f5b610f785760076040527f496e76616c69640000000000000000000000000000000000000000000000000060605260405060405180606001601f825f031636823750506308c379a05f526020602052601f19601f6040510116604401601cfd5b36602411611641576020606052602060046080376060805160200360031b6020820151811c811b905090506040526040516006557f2700ed1ef9147da3f7fdcaae08cbe6d1c92ec7fa6bace169d9c49e398e3cb1ca60405160605260206060a1005b505b5f5ffd5b63095ea7b360e4526004606051610104526080516101245260400160e05260e050602061018060e0516101005f6040515af161101e573d5f5f3e3d5ffd5b3d602081183d602010021861016052610160805160208201805160c052508060a052505060a0511561105d5760c05160a05160200360031b1c15611641575b565b6323b872dd610104526004606051610124526080516101445260a05161016452606001610100526101005060206101c0610100516101205f6040515af16110a8573d5f5f3e3d5ffd5b3d602081183d60201002186101a0526101a0805160208201805160e052508060c052505060c051156110e75760e05160c05160200360031b1c15611641575b565b60036101a0516020525f5260405f208054600182018160051b5f81601f0160051c6008811161164157801561113257905b808401548160051b610220015260010181811861111a575b50505050806102005250600981015461032052600a810154610340525060016101e051186111ca57610340513318156111ca57600c610360527f556e617574686f72697a656400000000000000000000000000000000000000006103805261036050610360518061038001601f825f031636823750506308c379a061032052602061034052601f19601f61036051011660440161033cfd5b60036101a0516020525f5260405f205f81555f60098201555f600a820155506103205161125657600d610360527f456d707479206465706f736974000000000000000000000000000000000000006103805261036050610360518061038001601f825f031636823750506308c379a061032052602061034052601f19601f61036051011660440161033cfd5b60016102005103610360525f610380525f6008905b806104a0526103805160078111611641576104a0516103605103610200518110156116415760051b61022001518160051b6103a00152600181016103805250610360516104a051106112bc576112c7565b60010181811861126b575b505073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6103805115611641575f60051b6103a00151186113115760206116525f395f516103805115611641575f60051b6103a001525b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61036051610380518110156116415760051b6103a00151186113635760206116525f395f5161036051610380518110156116415760051b6103a001525b6103805115611641575f60051b6103a0015160405260206116725f395f5160605261032051608052611393610fe0565b5f6104a05273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6102005115611641575f60051b6102200151186114975761034051316104a05260206116725f395f5163791ac9476104c05260a0610320516104e0526101c051610500528061052052806104e0015f610380518083528060051b5f826008811161164157801561143757905b8060051b6103a001518160051b602088010152600101818118611419575b505082016020019150509050810190506103405161054052426105605250803b15611641575f6104c06101c46104dc5f855af1611476573d5f5f3e3d5ffd5b5061034051316104a05180820382811161164157905090506104a0526115f4565b61036051610380518110156116415760051b6103a001516370a082316104c052306104e05260206104c060246104dc845afa6114d5573d5f5f3e3d5ffd5b60203d10611641576104c09050516104a05260206116725f395f51635c11d7956104c05260a0610320516104e0526101c051610500528061052052806104e0015f610380518083528060051b5f826008811161164157801561155157905b8060051b6103a001518160051b602088010152600101818118611533575b505082016020019150509050810190506103405161054052426105605250803b15611641575f6104c06101c46104dc5f855af1611590573d5f5f3e3d5ffd5b5061036051610380518110156116415760051b6103a001516370a082316104c052306104e05260206104c060246104dc845afa6115cf573d5f5f3e3d5ffd5b60203d10611641576104c09050516104a05180820382811161164157905090506104a0525b7f1c84cc0f96161bdafea718a9094dd21c21d1fb2f9ca2ebb9bd4e39918efbaace6101a0516104c052336104e0526101e051610500526104a0516105205260806104c0a16104a051815250565b5f80fda165767970657283000309000b005b5f80fd0000000000000000000000007eec3e2f4d567794b927b6d904fbf973bc8d15e60000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000006dc0a87638cd75cc700ccdb226c7ab6c054bc70b00000000000000000000000000000000000000000000000000b1a2bc2ec50000
Deployed Bytecode
0x6003361161000c57610fdc565b5f3560e01c63750c025b81186107285760c436106116415760043560040160088135116116415780355f816008811161164157801561006d57905b8060051b6020850101358060a01c611641578160051b6102000152600101818118610047575b5050806101e05250505f546002146116415760025f5534610300526005546103205261032051610300511015610102576010610340527f496e73756666696369656e7420666565000000000000000000000000000000006103605261034050610340518061036001601f825f031636823750506308c379a061030052602061032052601f19601f61034051011660440161031cfd5b60065461016e57600e610340527f50616c6f6d61206e6f74207365740000000000000000000000000000000000006103605261034050610340518061036001601f825f031636823750506308c379a061030052602061032052601f19601f61034051011660440161031cfd5b5f5f5f5f610320516004545ff115611641576103205161030051036103005260026101e05110156101fe57600a610340527f57726f6e672070617468000000000000000000000000000000000000000000006103605261034050610340518061036001601f825f031636823750506308c379a061030052602061032052601f19601f61034051011660440161031cfd5b6101e0518060051b806103608261020060045afa50508061034052506101e05115611641575f60051b61020001516104605260016101e0510361048052610480516101e0518110156116415760051b61020001516104a0526024356104c05273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6104605118610364576024356103005110156102ed5760146104e0527f496e73756666696369656e74206465706f736974000000000000000000000000610500526104e0506104e0518061050001601f825f031636823750506308c379a06104a05260206104c052601f19601f6104e05101166044016104bcfd5b60243561030051111561030f575f5f5f5f6024356103005103335ff115611641575b60206116525f395f5163d0e30db06104e052803b15611641575f6104e060046104fc602435855af1610343573d5f5f3e3d5ffd5b5060206116525f395f516103405115611641575f60051b610360015261041e565b5f5f5f5f61030051335ff11561164157610460516370a082316104e052306105005260206104e060246104fc845afa61039f573d5f5f3e3d5ffd5b60203d10611641576104e09050516104c05261046051604052336060523060805260243560a0526103ce61105f565b610460516370a082316104e052306105005260206104e060246104fc845afa6103f9573d5f5f3e3d5ffd5b60203d10611641576104e09050516104c05180820382811161164157905090506104c0525b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6104a0511861045d5760206116525f395f5161048051610340518110156116415760051b61036001525b6103405115611641575f60051b610360015160405260206116725f395f516060526104c05160805261048d610fe0565b61048051610340518110156116415760051b61036001516370a082316105005230610520526020610500602461051c845afa6104cb573d5f5f3e3d5ffd5b60203d10611641576105009050516104e05260206116725f395f51635c11d7956105005260a06104c0516105205260443561054052806105605280610520015f610340518083528060051b5f826008811161164157801561054657905b8060051b61036001518160051b602088010152600101818118610528575b505082016020019150509050810190503061058052426105a05250803b15611641575f6105006101c461051c5f855af1610582573d5f5f3e3d5ffd5b5061048051610340518110156116415760051b61036001516370a082316105005230610520526020610500602461051c845afa6105c1573d5f5f3e3d5ffd5b60203d10611641576105009050516104e05180820382811161164157905090506104e0526104e051610652576014610500527f496e73756666696369656e74206465706f7369740000000000000000000000006105205261050050610500518061052001601f825f031636823750506308c379a06104c05260206104e052601f19601f6105005101166044016104dcfd5b600254610500526003610500516020525f5260405f206101e0518060051b600183015f82601f0160051c600881116116415780156106a457905b8060051b61020001518184015560010181811861068c575b50505050808255506104e051600982015533600a82015550600161050051016002557f2281bb621c0a07568b02a200dd2287239d6448c538f83516307b7553ecf171e6610500516105205261046051610540526104a05161056052602435610580526104e0516105a052336105c052604060646105e037610100610520a160035f55005b346116415763eb8acce681186107445760015460405260206040f35b6331d72b2e811861075b5760025460405260206040f35b63b02c43d081186107f657602436106116415760208060405260036004356020525f5260405f208160400160608082528082015f84548083528060051b5f82600881116116415780156107c657905b8060018a0101548160051b6020880101526001018181186107aa575b5050820160200191505090508101905060098301546020830152600a830154604083015290509050810190506040f35b6322221b0c811861080d5760045460405260206040f35b63ddca3f4381186108245760055460405260206040f35b63c09f3291811861083b5760065460405260206040f35b62efa895811861086d5760443610611641576020604060046101a03760016101e0526108686106a06110e9565b6106a0f35b630be450008118610bd55760c43610611641576004356004016008813511611641578035602082018160051b80826106c0375050806106a05250506024356004016008813511611641578035602082018160051b80826107e0375050806107c052505060443560040160088135116116415780355f816008811161164157801561091957905b8060051b6020850101358060031c611641578160051b61090001526001018181186108f3575b5050806108e052505060015433181561099157600c610a00527f556e617574686f72697a65640000000000000000000000000000000000000000610a2052610a0050610a005180610a2001601f825f031636823750506308c379a06109c05260206109e052601f19601f610a005101166044016109dcfd5b6106a051610a00526107c051610a0051186109b5576108e051610a005118156109b7565b5f5b610a20576010610a20527f56616c69646174696f6e206572726f7200000000000000000000000000000000610a4052610a2050610a205180610a4001601f825f031636823750506308c379a06109e0526020610a0052601f19601f610a205101166044016109fcfd5b600460606002610a0051010201610a0052610a0051361815610aa157600f610a20527f696e76616c6964207061796c6f61640000000000000000000000000000000000610a4052610a2050610a205180610a4001601f825f031636823750506308c379a06109e0526020610a0052601f19601f610a205101166044016109fcfd5b3660206020610a0051030111611641576020610a205260206020610a005103610a4037610a20805160200360031b6020820151811c811b905090506006541815610b4a57600e610a60527f696e76616c69642070616c6f6d61000000000000000000000000000000000000610a8052610a6050610a605180610a8001601f825f031636823750506308c379a0610a20526020610a4052601f19601f610a60510116604401610a3cfd5b5f6008905b80610a20526106a051610a205110610b6657610bd1565b610a20516106a0518110156116415760051b6106c001516101a052610a20516107c0518110156116415760051b6107e001516101c052610a20516108e0518110156116415760051b61090001516101e052610bc2610a406110e9565b610a4050600101818118610b4f575b5050005b636974af698118610cdc5760243610611641576004358060a01c611641576040526001543318610c425760443618610c3c5760065436604411611641576020606052602060246080376060805160200360031b6020820151811c811b905090501815610c44565b5f610c44565b5f5b610ca457600c60a0527f556e617574686f72697a6564000000000000000000000000000000000000000060c05260a05060a0518060c001601f825f031636823750506308c379a06060526020608052601f19601f60a0510116604401607cfd5b6040516001557fb682667b5b9327acc3f181a08e32c75a75f74ecb054e108a9c7269f64920ab4a3360605260405160805260406060a1005b63c98856aa8118610deb5760243610611641576004358060a01c611641576040526001543318610d495760443618610d435760065436604411611641576020606052602060246080376060805160200360031b6020820151811c811b905090501815610d4b565b5f610d4b565b5f5b610dab57600c60a0527f556e617574686f72697a6564000000000000000000000000000000000000000060c05260a05060a0518060c001601f825f031636823750506308c379a06060526020608052601f19601f60a0510116604401607cfd5b6004546060526040516004557f766266fd21d17d465fb39cab9d9ff8020a212598404ab12bfd59aa2de4dea6a260605160805260405160a05260406080a1005b63fbd159558118610eec5760243610611641576001543318610e4a5760443618610e445760065436604411611641576020604052602060246060376040805160200360031b6020820151811c811b905090501815610e4c565b5f610e4c565b5f5b610eac57600c6080527f556e617574686f72697a6564000000000000000000000000000000000000000060a0526080506080518060a001601f825f031636823750506308c379a06040526020606052601f19601f6080510116604401605cfd5b6005546040526004356005557f8987e6f43a6c6bf408c8c427dceb2f98377f859348939ef4ab7b770b510a395a60405160605260043560805260406060a1005b6323fde8e28118610fda576001543318610f1757600654610f11576024361815610f19565b5f610f19565b5f5b610f785760076040527f496e76616c69640000000000000000000000000000000000000000000000000060605260405060405180606001601f825f031636823750506308c379a05f526020602052601f19601f6040510116604401601cfd5b36602411611641576020606052602060046080376060805160200360031b6020820151811c811b905090506040526040516006557f2700ed1ef9147da3f7fdcaae08cbe6d1c92ec7fa6bace169d9c49e398e3cb1ca60405160605260206060a1005b505b5f5ffd5b63095ea7b360e4526004606051610104526080516101245260400160e05260e050602061018060e0516101005f6040515af161101e573d5f5f3e3d5ffd5b3d602081183d602010021861016052610160805160208201805160c052508060a052505060a0511561105d5760c05160a05160200360031b1c15611641575b565b6323b872dd610104526004606051610124526080516101445260a05161016452606001610100526101005060206101c0610100516101205f6040515af16110a8573d5f5f3e3d5ffd5b3d602081183d60201002186101a0526101a0805160208201805160e052508060c052505060c051156110e75760e05160c05160200360031b1c15611641575b565b60036101a0516020525f5260405f208054600182018160051b5f81601f0160051c6008811161164157801561113257905b808401548160051b610220015260010181811861111a575b50505050806102005250600981015461032052600a810154610340525060016101e051186111ca57610340513318156111ca57600c610360527f556e617574686f72697a656400000000000000000000000000000000000000006103805261036050610360518061038001601f825f031636823750506308c379a061032052602061034052601f19601f61036051011660440161033cfd5b60036101a0516020525f5260405f205f81555f60098201555f600a820155506103205161125657600d610360527f456d707479206465706f736974000000000000000000000000000000000000006103805261036050610360518061038001601f825f031636823750506308c379a061032052602061034052601f19601f61036051011660440161033cfd5b60016102005103610360525f610380525f6008905b806104a0526103805160078111611641576104a0516103605103610200518110156116415760051b61022001518160051b6103a00152600181016103805250610360516104a051106112bc576112c7565b60010181811861126b575b505073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6103805115611641575f60051b6103a00151186113115760206116525f395f516103805115611641575f60051b6103a001525b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61036051610380518110156116415760051b6103a00151186113635760206116525f395f5161036051610380518110156116415760051b6103a001525b6103805115611641575f60051b6103a0015160405260206116725f395f5160605261032051608052611393610fe0565b5f6104a05273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6102005115611641575f60051b6102200151186114975761034051316104a05260206116725f395f5163791ac9476104c05260a0610320516104e0526101c051610500528061052052806104e0015f610380518083528060051b5f826008811161164157801561143757905b8060051b6103a001518160051b602088010152600101818118611419575b505082016020019150509050810190506103405161054052426105605250803b15611641575f6104c06101c46104dc5f855af1611476573d5f5f3e3d5ffd5b5061034051316104a05180820382811161164157905090506104a0526115f4565b61036051610380518110156116415760051b6103a001516370a082316104c052306104e05260206104c060246104dc845afa6114d5573d5f5f3e3d5ffd5b60203d10611641576104c09050516104a05260206116725f395f51635c11d7956104c05260a0610320516104e0526101c051610500528061052052806104e0015f610380518083528060051b5f826008811161164157801561155157905b8060051b6103a001518160051b602088010152600101818118611533575b505082016020019150509050810190506103405161054052426105605250803b15611641575f6104c06101c46104dc5f855af1611590573d5f5f3e3d5ffd5b5061036051610380518110156116415760051b6103a001516370a082316104c052306104e05260206104c060246104dc845afa6115cf573d5f5f3e3d5ffd5b60203d10611641576104c09050516104a05180820382811161164157905090506104a0525b7f1c84cc0f96161bdafea718a9094dd21c21d1fb2f9ca2ebb9bd4e39918efbaace6101a0516104c052336104e0526101e051610500526104a0516105205260806104c0a16104a051815250565b5f80fda165767970657283000309000b000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.