Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Latest 25 from a total of 171 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Withdraw_profit | 20405889 | 580 days ago | IN | 0 ETH | 0.0002562 | ||||
| Withdraw_profit | 19825084 | 661 days ago | IN | 0 ETH | 0.00882028 | ||||
| Withdraw_profit | 19774888 | 668 days ago | IN | 0 ETH | 0.00724499 | ||||
| Withdraw_profit | 19670942 | 682 days ago | IN | 0 ETH | 0.00065171 | ||||
| Withdraw_profit | 19619307 | 690 days ago | IN | 0 ETH | 0.00252274 | ||||
| Withdraw_profit | 19573373 | 696 days ago | IN | 0 ETH | 0.00122166 | ||||
| Withdraw_profit | 19525024 | 703 days ago | IN | 0 ETH | 0.00144055 | ||||
| Withdraw_profit | 19475802 | 710 days ago | IN | 0 ETH | 0.00190065 | ||||
| Withdraw_profit | 19426071 | 717 days ago | IN | 0 ETH | 0.00391014 | ||||
| Withdraw_profit | 19418228 | 718 days ago | IN | 0 ETH | 0.00298835 | ||||
| Withdraw_profit | 19373116 | 724 days ago | IN | 0 ETH | 0.00360342 | ||||
| Withdraw_profit | 19347480 | 728 days ago | IN | 0 ETH | 0.00237107 | ||||
| Withdraw_profit | 19325456 | 731 days ago | IN | 0 ETH | 0.00326623 | ||||
| Withdraw_profit | 19275866 | 738 days ago | IN | 0 ETH | 0.00252886 | ||||
| Withdraw_profit | 19172370 | 752 days ago | IN | 0 ETH | 0.00207597 | ||||
| Withdraw_profit | 19126715 | 759 days ago | IN | 0 ETH | 0.00259053 | ||||
| Withdraw_profit | 19076166 | 766 days ago | IN | 0 ETH | 0.00103939 | ||||
| Update | 19072412 | 766 days ago | IN | 0 ETH | 0.00326368 | ||||
| Update | 19062559 | 768 days ago | IN | 0 ETH | 0.00602859 | ||||
| Update | 19062154 | 768 days ago | IN | 0 ETH | 0.00410827 | ||||
| Withdraw_profit | 19026683 | 773 days ago | IN | 0 ETH | 0.00208936 | ||||
| Withdraw_profit | 18973134 | 780 days ago | IN | 0 ETH | 0.00118392 | ||||
| Withdraw_profit | 18928792 | 786 days ago | IN | 0 ETH | 0.00416441 | ||||
| Withdraw_profit | 18927298 | 787 days ago | IN | 0 ETH | 0.00364746 | ||||
| Withdraw_profit | 18878466 | 793 days ago | IN | 0 ETH | 0.00341288 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers.
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
|||
|---|---|---|---|---|---|---|---|---|
| Transfer | 20405889 | 580 days ago | 0 ETH | |||||
| Get_virtual_pric... | 20405889 | 580 days ago | 0 ETH | |||||
| Balance Of | 20405889 | 580 days ago | 0 ETH | |||||
| Debt | 20012841 | 634 days ago | 0 ETH | |||||
| Debt | 20012486 | 635 days ago | 0 ETH | |||||
| Debt | 20011887 | 635 days ago | 0 ETH | |||||
| Debt | 20011693 | 635 days ago | 0 ETH | |||||
| Debt | 20011679 | 635 days ago | 0 ETH | |||||
| Debt | 20011515 | 635 days ago | 0 ETH | |||||
| Debt | 20011256 | 635 days ago | 0 ETH | |||||
| Debt | 20010843 | 635 days ago | 0 ETH | |||||
| Debt | 20010837 | 635 days ago | 0 ETH | |||||
| Debt | 20010835 | 635 days ago | 0 ETH | |||||
| Debt | 20010829 | 635 days ago | 0 ETH | |||||
| Debt | 20010827 | 635 days ago | 0 ETH | |||||
| Debt | 20010823 | 635 days ago | 0 ETH | |||||
| Debt | 20010821 | 635 days ago | 0 ETH | |||||
| Debt | 20010817 | 635 days ago | 0 ETH | |||||
| Debt | 20010814 | 635 days ago | 0 ETH | |||||
| Debt | 20010809 | 635 days ago | 0 ETH | |||||
| Debt | 20010807 | 635 days ago | 0 ETH | |||||
| Debt | 20010645 | 635 days ago | 0 ETH | |||||
| Debt | 20010270 | 635 days ago | 0 ETH | |||||
| Debt | 20010036 | 635 days ago | 0 ETH | |||||
| Debt | 20009920 | 635 days ago | 0 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Peg Keeper
Compiler Version
vyper:0.3.7
Contract Source Code (Vyper language format)
# @version 0.3.7
"""
@title Peg Keeper
@license MIT
@author Curve.Fi
@notice Peg Keeper for pool with equal decimals of coins
"""
interface StableAggregator:
def price() -> uint256: view
interface CurvePool:
def balances(i_coin: uint256) -> uint256: view
def coins(i: uint256) -> address: view
def calc_token_amount(_amounts: uint256[2], _is_deposit: bool) -> uint256: view
def add_liquidity(_amounts: uint256[2], _min_mint_amount: uint256) -> uint256: nonpayable
def remove_liquidity_imbalance(_amounts: uint256[2], _max_burn_amount: uint256) -> uint256: nonpayable
def get_virtual_price() -> uint256: view
def balanceOf(arg0: address) -> uint256: view
def transfer(_to : address, _value : uint256) -> bool: nonpayable
def get_p() -> uint256: view
interface ERC20:
def approve(_spender: address, _amount: uint256): nonpayable
def decimals() -> uint256: view
event Provide:
amount: uint256
event Withdraw:
amount: uint256
event Profit:
lp_amount: uint256
event CommitNewReceiver:
receiver: address
event ApplyNewReceiver:
receiver: address
event CommitNewAdmin:
admin: address
event ApplyNewAdmin:
admin: address
event SetNewCallerShare:
caller_share: uint256
# Time between providing/withdrawing coins
ACTION_DELAY: constant(uint256) = 15 * 60
ADMIN_ACTIONS_DELAY: constant(uint256) = 3 * 86400
PRECISION: constant(uint256) = 10 ** 18
# Calculation error for profit
PROFIT_THRESHOLD: constant(uint256) = 10 ** 18
POOL: immutable(CurvePool)
I: immutable(uint256) # index of pegged in pool
PEGGED: immutable(address)
IS_INVERSE: immutable(bool)
PEG_MUL: immutable(uint256)
AGGREGATOR: immutable(StableAggregator)
last_change: public(uint256)
debt: public(uint256)
SHARE_PRECISION: constant(uint256) = 10 ** 5
caller_share: public(uint256)
admin: public(address)
future_admin: public(address)
# Receiver of profit
receiver: public(address)
future_receiver: public(address)
new_admin_deadline: public(uint256)
new_receiver_deadline: public(uint256)
FACTORY: immutable(address)
@external
def __init__(_pool: CurvePool, _index: uint256, _receiver: address, _caller_share: uint256, _factory: address, _aggregator: StableAggregator, _admin: address):
"""
@notice Contract constructor
@param _pool Contract pool address
@param _index Index of the pegged
@param _receiver Receiver of the profit
@param _caller_share Caller's share of profit
@param _factory Factory which should be able to take coins away
@param _aggregator Price aggregator which shows the price of pegged in real "dollars"
@param _admin Admin account
"""
assert _index < 2
POOL = _pool
I = _index
pegged: address = _pool.coins(_index)
PEGGED = pegged
ERC20(pegged).approve(_pool.address, max_value(uint256))
ERC20(pegged).approve(_factory, max_value(uint256))
PEG_MUL = 10 ** (18 - ERC20(_pool.coins(1 - _index)).decimals())
self.admin = _admin
assert _receiver != empty(address)
self.receiver = _receiver
log ApplyNewAdmin(msg.sender)
log ApplyNewReceiver(_receiver)
assert _caller_share <= SHARE_PRECISION # dev: bad part value
self.caller_share = _caller_share
log SetNewCallerShare(_caller_share)
FACTORY = _factory
AGGREGATOR = _aggregator
IS_INVERSE = (_index == 0)
@pure
@external
def factory() -> address:
return FACTORY
@pure
@external
def pegged() -> address:
return PEGGED
@pure
@external
def pool() -> CurvePool:
return POOL
@pure
@external
def aggregator() -> StableAggregator:
return AGGREGATOR
@internal
def _provide(_amount: uint256):
# We already have all reserves here
# ERC20(PEGGED).mint(self, _amount)
if _amount == 0:
return
amounts: uint256[2] = empty(uint256[2])
amounts[I] = _amount
POOL.add_liquidity(amounts, 0)
self.last_change = block.timestamp
self.debt += _amount
log Provide(_amount)
@internal
def _withdraw(_amount: uint256):
if _amount == 0:
return
debt: uint256 = self.debt
amount: uint256 = min(_amount, debt)
amounts: uint256[2] = empty(uint256[2])
amounts[I] = amount
POOL.remove_liquidity_imbalance(amounts, max_value(uint256))
self.last_change = block.timestamp
self.debt -= amount
log Withdraw(amount)
@internal
@view
def _calc_profit() -> uint256:
lp_balance: uint256 = POOL.balanceOf(self)
virtual_price: uint256 = POOL.get_virtual_price()
lp_debt: uint256 = self.debt * PRECISION / virtual_price + PROFIT_THRESHOLD
if lp_balance <= lp_debt:
return 0
else:
return lp_balance - lp_debt
@internal
@view
def _calc_future_profit(_amount: uint256, _is_deposit: bool) -> uint256:
lp_balance: uint256 = POOL.balanceOf(self)
debt: uint256 = self.debt
amount: uint256 = _amount
if not _is_deposit:
amount = min(_amount, debt)
amounts: uint256[2] = empty(uint256[2])
amounts[I] = amount
lp_balance_diff: uint256 = POOL.calc_token_amount(amounts, _is_deposit)
if _is_deposit:
lp_balance += lp_balance_diff
debt += amount
else:
lp_balance -= lp_balance_diff
debt -= amount
virtual_price: uint256 = POOL.get_virtual_price()
lp_debt: uint256 = debt * PRECISION / virtual_price + PROFIT_THRESHOLD
if lp_balance <= lp_debt:
return 0
else:
return lp_balance - lp_debt
@external
@view
def calc_profit() -> uint256:
"""
@notice Calculate generated profit in LP tokens
@return Amount of generated profit
"""
return self._calc_profit()
@external
@view
def estimate_caller_profit() -> uint256:
"""
@notice Estimate profit from calling update()
@dev This method is not precise, real profit is always more because of increasing virtual price
@return Expected amount of profit going to beneficiary
"""
if self.last_change + ACTION_DELAY > block.timestamp:
return 0
balance_pegged: uint256 = POOL.balances(I)
balance_peg: uint256 = POOL.balances(1 - I) * PEG_MUL
initial_profit: uint256 = self._calc_profit()
p_agg: uint256 = AGGREGATOR.price() # Current USD per stablecoin
# Checking the balance will ensure no-loss of the stabilizer, but to ensure stabilization
# we need to exclude "bad" p_agg, so we add an extra check for it
new_profit: uint256 = 0
if balance_peg > balance_pegged:
if p_agg < 10**18:
return 0
new_profit = self._calc_future_profit((balance_peg - balance_pegged) / 5, True) # this dumps stablecoin
else:
if p_agg > 10**18:
return 0
new_profit = self._calc_future_profit((balance_pegged - balance_peg) / 5, False) # this pumps stablecoin
if new_profit < initial_profit:
return 0
lp_amount: uint256 = new_profit - initial_profit
return lp_amount * self.caller_share / SHARE_PRECISION
@external
@nonpayable
def update(_beneficiary: address = msg.sender) -> uint256:
"""
@notice Provide or withdraw coins from the pool to stabilize it
@param _beneficiary Beneficiary address
@return Amount of profit received by beneficiary
"""
if self.last_change + ACTION_DELAY > block.timestamp:
return 0
balance_pegged: uint256 = POOL.balances(I)
balance_peg: uint256 = POOL.balances(1 - I) * PEG_MUL
initial_profit: uint256 = self._calc_profit()
p_agg: uint256 = AGGREGATOR.price() # Current USD per stablecoin
# Checking the balance will ensure no-loss of the stabilizer, but to ensure stabilization
# we need to exclude "bad" p_agg, so we add an extra check for it
if balance_peg > balance_pegged:
assert p_agg >= 10**18
self._provide((balance_peg - balance_pegged) / 5) # this dumps stablecoin
else:
assert p_agg <= 10**18
self._withdraw((balance_pegged - balance_peg) / 5) # this pumps stablecoin
# Send generated profit
new_profit: uint256 = self._calc_profit()
assert new_profit >= initial_profit, "peg unprofitable"
lp_amount: uint256 = new_profit - initial_profit
caller_profit: uint256 = lp_amount * self.caller_share / SHARE_PRECISION
if caller_profit > 0:
POOL.transfer(_beneficiary, caller_profit)
return caller_profit
@external
@nonpayable
def set_new_caller_share(_new_caller_share: uint256):
"""
@notice Set new update caller's part
@param _new_caller_share Part with SHARE_PRECISION
"""
assert msg.sender == self.admin # dev: only admin
assert _new_caller_share <= SHARE_PRECISION # dev: bad part value
self.caller_share = _new_caller_share
log SetNewCallerShare(_new_caller_share)
@external
@nonpayable
def withdraw_profit() -> uint256:
"""
@notice Withdraw profit generated by Peg Keeper
@return Amount of LP Token received
"""
lp_amount: uint256 = self._calc_profit()
POOL.transfer(self.receiver, lp_amount)
log Profit(lp_amount)
return lp_amount
@external
@nonpayable
def commit_new_admin(_new_admin: address):
"""
@notice Commit new admin of the Peg Keeper
@param _new_admin Address of the new admin
"""
assert msg.sender == self.admin # dev: only admin
assert self.new_admin_deadline == 0 # dev: active action
deadline: uint256 = block.timestamp + ADMIN_ACTIONS_DELAY
self.new_admin_deadline = deadline
self.future_admin = _new_admin
log CommitNewAdmin(_new_admin)
@external
@nonpayable
def apply_new_admin():
"""
@notice Apply new admin of the Peg Keeper
@dev Should be executed from new admin
"""
new_admin: address = self.future_admin
assert msg.sender == new_admin # dev: only new admin
assert block.timestamp >= self.new_admin_deadline # dev: insufficient time
assert self.new_admin_deadline != 0 # dev: no active action
self.admin = new_admin
self.new_admin_deadline = 0
log ApplyNewAdmin(new_admin)
@external
@nonpayable
def commit_new_receiver(_new_receiver: address):
"""
@notice Commit new receiver of profit
@param _new_receiver Address of the new receiver
"""
assert msg.sender == self.admin # dev: only admin
assert self.new_receiver_deadline == 0 # dev: active action
deadline: uint256 = block.timestamp + ADMIN_ACTIONS_DELAY
self.new_receiver_deadline = deadline
self.future_receiver = _new_receiver
log CommitNewReceiver(_new_receiver)
@external
@nonpayable
def apply_new_receiver():
"""
@notice Apply new receiver of profit
"""
assert block.timestamp >= self.new_receiver_deadline # dev: insufficient time
assert self.new_receiver_deadline != 0 # dev: no active action
new_receiver: address = self.future_receiver
self.receiver = new_receiver
self.new_receiver_deadline = 0
log ApplyNewReceiver(new_receiver)
@external
@nonpayable
def revert_new_options():
"""
@notice Revert new admin of the Peg Keeper or new receiver
@dev Should be executed from admin
"""
assert msg.sender == self.admin # dev: only admin
self.new_admin_deadline = 0
self.new_receiver_deadline = 0
log ApplyNewAdmin(self.admin)
log ApplyNewReceiver(self.receiver)Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"name":"Provide","inputs":[{"name":"amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Withdraw","inputs":[{"name":"amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Profit","inputs":[{"name":"lp_amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"CommitNewReceiver","inputs":[{"name":"receiver","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"ApplyNewReceiver","inputs":[{"name":"receiver","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"CommitNewAdmin","inputs":[{"name":"admin","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"ApplyNewAdmin","inputs":[{"name":"admin","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetNewCallerShare","inputs":[{"name":"caller_share","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_pool","type":"address"},{"name":"_index","type":"uint256"},{"name":"_receiver","type":"address"},{"name":"_caller_share","type":"uint256"},{"name":"_factory","type":"address"},{"name":"_aggregator","type":"address"},{"name":"_admin","type":"address"}],"outputs":[]},{"stateMutability":"pure","type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"pure","type":"function","name":"pegged","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"pure","type":"function","name":"pool","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"pure","type":"function","name":"aggregator","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"calc_profit","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"estimate_caller_profit","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"update","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"update","inputs":[{"name":"_beneficiary","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"set_new_caller_share","inputs":[{"name":"_new_caller_share","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"withdraw_profit","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"commit_new_admin","inputs":[{"name":"_new_admin","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"apply_new_admin","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"commit_new_receiver","inputs":[{"name":"_new_receiver","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"apply_new_receiver","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"revert_new_options","inputs":[],"outputs":[]},{"stateMutability":"view","type":"function","name":"last_change","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"debt","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"caller_share","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"future_admin","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"receiver","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"future_receiver","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"new_admin_deadline","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"new_receiver_deadline","inputs":[],"outputs":[{"name":"","type":"uint256"}]}]Contract Creation Code
60206113726000396000518060a01c61136d5760405260206113b26000396000518060a01c61136d5760605260206113f26000396000518060a01c61136d5760805260206114126000396000518060a01c61136d5760a05260206114326000396000518060a01c61136d5760c0523461136d57600160206113926000396000511161136d5760405161100b52602061139260003960005161102b5260405163c6610657610100526020611392600039600051610120526020610100602461011c845afa6100d1573d600060003e3d6000fd5b60203d1061136d57610100518060a01c61136d576101405261014090505160e05260e05161104b5260e05163095ea7b361010052604051610120527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61014052803b1561136d576000610100604461011c6000855af1610156573d600060003e3d6000fd5b5060e05163095ea7b361010052608051610120527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61014052803b1561136d576000610100604461011c6000855af16101b4573d600060003e3d6000fd5b5060405163c6610657610100526020611392600039600051806001036001811161136d579050610120526020610100602461011c845afa6101fa573d600060003e3d6000fd5b60203d1061136d57610100518060a01c61136d576101405261014090505163313ce567610160526020610160600461017c845afa61023d573d600060003e3d6000fd5b60203d1061136d57610160905051806012036012811161136d579050604d811161136d5780600a0a905061108b5260c0516003556060511561136d576060516005557fc0a6e80c08b9d10c650a9f3e8ff16d7ee0f62bbd5c8ac3b5eba62dae04ec995a33610100526020610100a17fd9338c71e91ed720d2bd77976c87a0cd6f01ee443a6410481ffdebb9f442db67606051610100526020610100a1620186a060206113d26000396000511161136d5760206113d26000396000516002557f43abfd568a12e5f6ea230e56ba11b83e29e9921019211df9cc2e216ba9f225dc60206113d2600039600051610100526020610100a16080516110cb5260a0516110ab5260206113926000396000511561106b5261100b610361610000396110eb610000f36003361161000c57610b1d565b60003560e01c34610ff95763c45a0155811861003e5760043610610ff95760206110cb60003960005160405260206040f35b630907861381186100655760043610610ff957602061104b60003960005160405260206040f35b6316f0115b811861008c5760043610610ff957602061100b60003960005160405260206040f35b63245a7bfc81186100b35760043610610ff95760206110ab60003960005160405260206040f35b63322f15d981186100d65760043610610ff95760206100d260c0610cec565b60c0f35b63d0d1849181186103675760043610610ff957426000546103848101818110610ff957905011156101115760006101c05260206101c0610365565b602061100b600039600051634903b0d16101e052602061102b6000396000516102005260206101e060246101fc845afa610150573d600060003e3d6000fd5b60203d10610ff9576101e09050516101c052602061100b600039600051634903b0d161020052602061102b6000396000518060010360018111610ff9579050610220526020610200602461021c845afa6101af573d600060003e3d6000fd5b60203d10610ff957610200905051602061108b600039600051808202811583838304141715610ff957905090506101e0526101eb610220610cec565b610220516102005260206110ab60003960005163a035b1fe610240526020610240600461025c845afa610223573d600060003e3d6000fd5b60203d10610ff957610240905051610220526000610240526101c0516101e051116102a657670de0b6b3a7640001610220511061026a576000610260526020610260610365565b6101c0516101e051808203828111610ff957905090506005810490506040526000606052610299610260610de6565b6102605161024052610300565b670de0b6b3a763ffff61022051116102c8576000610260526020610260610365565b6101e0516101c051808203828111610ff9579050905060058104905060405260016060526102f7610260610de6565b61026051610240525b6102005161024051101561031e576000610260526020610260610365565b6102405161020051808203828111610ff957905090506102605261026051600254808202811583838304141715610ff95790509050620186a0810490506102805260206102805bf35b63a2e6204581186103845760043610610ff95733610160526103a7565b631c1b877281186106af5760243610610ff9576004358060a01c610ff957610160525b426000546103848101818110610ff957905011156103cf5760006101805260206101806106ad565b602061100b600039600051634903b0d16101a052602061102b6000396000516101c05260206101a060246101bc845afa61040e573d600060003e3d6000fd5b60203d10610ff9576101a090505161018052602061100b600039600051634903b0d16101c052602061102b6000396000518060010360018111610ff95790506101e05260206101c060246101dc845afa61046d573d600060003e3d6000fd5b60203d10610ff9576101c0905051602061108b600039600051808202811583838304141715610ff957905090506101a0526104a96101e0610cec565b6101e0516101c05260206110ab60003960005163a035b1fe610200526020610200600461021c845afa6104e1573d600060003e3d6000fd5b60203d10610ff9576102009050516101e052610180516101a0511161053d57670de0b6b3a76400006101e05111610ff957610180516101a051808203828111610ff95790509050600581049050604052610576610be956610576565b670de0b6b3a76400006101e05110610ff9576101a05161018051808203828111610ff95790509050600581049050604052610576610b23565b610581610220610cec565b61022051610200526101c0516102005110156105fd576010610220527f70656720756e70726f66697461626c65000000000000000000000000000000006102405261022050610220518061024001601f826000031636823750506308c379a06101e052602061020052601f19601f6102205101166044016101fcfd5b610200516101c051808203828111610ff957905090506102205261022051600254808202811583838304141715610ff95790509050620186a0810490506102405261024051156106a757602061100b60003960005163a9059cbb610260526101605161028052610240516102a0526020610260604461027c6000855af1610689573d600060003e3d6000fd5b60203d10610ff957610260518060011c610ff9576102c0526102c050505b60206102405bf35b639f5ef86f811861070b5760243610610ff9576003543318610ff957620186a060043511610ff9576004356002557f43abfd568a12e5f6ea230e56ba11b83e29e9921019211df9cc2e216ba9f225dc60043560405260206040a1005b632c9f7f9281186107b95760043610610ff95761072860e0610cec565b60e05160c052602061100b60003960005163a9059cbb60e0526005546101005260c05161012052602060e0604460fc6000855af161076b573d600060003e3d6000fd5b60203d10610ff95760e0518060011c610ff9576101405261014050507f357d905f1831209797df4d55d79c5c5bf1d9f7311c976afd05e13d881eab9bc860c05160e052602060e0a1602060c0f35b63f636b05f81186108375760243610610ff9576004358060a01c610ff9576040526003543318610ff957600754610ff957426203f4808101818110610ff95790506060526060516007556040516004557f0305c49816a5a9a099d81e90d76421c9a4a529e0640cd15297b6fc8f1c9ac6ff60405160805260206080a1005b63c336fbd581186108a35760043610610ff9576004546040526040513318610ff9576007544210610ff95760075415610ff95760405160035560006007557fc0a6e80c08b9d10c650a9f3e8ff16d7ee0f62bbd5c8ac3b5eba62dae04ec995a60405160605260206060a1005b63561a414781186109215760243610610ff9576004358060a01c610ff9576040526003543318610ff957600854610ff957426203f4808101818110610ff95790506060526060516008556040516006557ff918f289f5185efe74d8bdf25364dbbc9c83a2bc438ede64b939cf6751ccf27c60405160805260206080a1005b63ceb667c581186109845760043610610ff9576008544210610ff95760085415610ff95760065460405260405160055560006008557fd9338c71e91ed720d2bd77976c87a0cd6f01ee443a6410481ffdebb9f442db6760405160605260206060a1005b637bfd8fad8118610a045760043610610ff9576003543318610ff957600060075560006008557fc0a6e80c08b9d10c650a9f3e8ff16d7ee0f62bbd5c8ac3b5eba62dae04ec995a60035460405260206040a17fd9338c71e91ed720d2bd77976c87a0cd6f01ee443a6410481ffdebb9f442db6760055460405260206040a1005b63394b146d8118610a235760043610610ff95760005460405260206040f35b630dca59c18118610a425760043610610ff95760015460405260206040f35b63df81cd3f8118610a615760043610610ff95760025460405260206040f35b63f851a4408118610a805760043610610ff95760035460405260206040f35b6317f7182a8118610a9f5760043610610ff95760045460405260206040f35b63f7260d3e8118610abe5760043610610ff95760055460405260206040f35b633bea9ddd8118610add5760043610610ff95760065460405260206040f35b63553b549c8118610afc5760043610610ff95760075460405260206040f35b63623960668118610b1b5760043610610ff95760085460405260206040f35b505b60006000fd5b604051610b2f57610be7565b604036606037604051602061102b60003960005160018111610ff95760051b60600152602061100b600039600051630b4c7e4d60a05260605160c05260805160e052600061010052602060a0606460bc6000855af1610b93573d600060003e3d6000fd5b60203d10610ff95760a0505042600055600154604051808201828110610ff957905090506001557f8d685bd3f45d861c759ed7a46ea3d30eb5cc6ce9fe06c526931f94c963bca7d260405160a052602060a0a15b565b604051610bf557610cea565b6001546060526040516060518082811882841002189050905060805260403660a037608051602061102b60003960005160018111610ff95760051b60a00152602061100b60003960005163e310327360e05260a0516101005260c051610120527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61014052602060e0606460fc6000855af1610c96573d600060003e3d6000fd5b60203d10610ff95760e0505042600055600154608051808203828111610ff957905090506001557f5b6b431d4476a211bb7d41c20d1aab9ae2321deee0d20be3d9fc9b1093fa6e3d60805160e052602060e0a15b565b602061100b6000396000516370a0823160605230608052602060606024607c845afa610d1d573d600060003e3d6000fd5b60203d10610ff9576060905051604052602061100b60003960005163bb7b8b80608052602060806004609c845afa610d5a573d600060003e3d6000fd5b60203d10610ff9576080905051606052600154670de0b6b3a7640000810281670de0b6b3a7640000820418610ff95790506060518015610ff95780820490509050670de0b6b3a76400008101818110610ff95790506080526080516040511115610dde57604051608051808203828111610ff95790509050815250610de456610de4565b60008152505b565b602061100b6000396000516370a0823160a0523060c052602060a0602460bc845afa610e17573d600060003e3d6000fd5b60203d10610ff95760a090505160805260015460a05260405160c052606051610e515760405160a0518082811882841002189050905060c0525b60403660e03760c051602061102b60003960005160018111610ff95760051b60e00152602061100b60003960005163ed8e84f36101405260e0516101605261010051610180526060516101a0526020610140606461015c845afa610eba573d600060003e3d6000fd5b60203d10610ff95761014090505161012052606051610f075760805161012051808203828111610ff9579050905060805260a05160c051808203828111610ff9579050905060a052610f37565b60805161012051808201828110610ff9579050905060805260a05160c051808201828110610ff9579050905060a0525b602061100b60003960005163bb7b8b80610160526020610160600461017c845afa610f67573d600060003e3d6000fd5b60203d10610ff9576101609050516101405260a051670de0b6b3a7640000810281670de0b6b3a7640000820418610ff9579050610140518015610ff95780820490509050670de0b6b3a76400008101818110610ff957905061016052610160516080511115610ff15760805161016051808203828111610ff95790509050815250610ff756610ff7565b60008152505b565b600080fda165767970657283000307000b005b600080fd000000000000000000000000390f3595bca2df7d23783dfd126427cceb997bf40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000ecb456ea5365865ebab8a2661b0c503410e9b3470000000000000000000000000000000000000000000000000000000000004e20000000000000000000000000c9332fdcb1c491dcc683bae86fe3cb70360738bc000000000000000000000000e5afcf332a5457e8fafcd668bce3df953762dfe700000000000000000000000040907540d8a6c65c637785e8f8b742ae6b0b9968
Deployed Bytecode
0x6003361161000c57610b1d565b60003560e01c34610ff95763c45a0155811861003e5760043610610ff95760206110cb60003960005160405260206040f35b630907861381186100655760043610610ff957602061104b60003960005160405260206040f35b6316f0115b811861008c5760043610610ff957602061100b60003960005160405260206040f35b63245a7bfc81186100b35760043610610ff95760206110ab60003960005160405260206040f35b63322f15d981186100d65760043610610ff95760206100d260c0610cec565b60c0f35b63d0d1849181186103675760043610610ff957426000546103848101818110610ff957905011156101115760006101c05260206101c0610365565b602061100b600039600051634903b0d16101e052602061102b6000396000516102005260206101e060246101fc845afa610150573d600060003e3d6000fd5b60203d10610ff9576101e09050516101c052602061100b600039600051634903b0d161020052602061102b6000396000518060010360018111610ff9579050610220526020610200602461021c845afa6101af573d600060003e3d6000fd5b60203d10610ff957610200905051602061108b600039600051808202811583838304141715610ff957905090506101e0526101eb610220610cec565b610220516102005260206110ab60003960005163a035b1fe610240526020610240600461025c845afa610223573d600060003e3d6000fd5b60203d10610ff957610240905051610220526000610240526101c0516101e051116102a657670de0b6b3a7640001610220511061026a576000610260526020610260610365565b6101c0516101e051808203828111610ff957905090506005810490506040526000606052610299610260610de6565b6102605161024052610300565b670de0b6b3a763ffff61022051116102c8576000610260526020610260610365565b6101e0516101c051808203828111610ff9579050905060058104905060405260016060526102f7610260610de6565b61026051610240525b6102005161024051101561031e576000610260526020610260610365565b6102405161020051808203828111610ff957905090506102605261026051600254808202811583838304141715610ff95790509050620186a0810490506102805260206102805bf35b63a2e6204581186103845760043610610ff95733610160526103a7565b631c1b877281186106af5760243610610ff9576004358060a01c610ff957610160525b426000546103848101818110610ff957905011156103cf5760006101805260206101806106ad565b602061100b600039600051634903b0d16101a052602061102b6000396000516101c05260206101a060246101bc845afa61040e573d600060003e3d6000fd5b60203d10610ff9576101a090505161018052602061100b600039600051634903b0d16101c052602061102b6000396000518060010360018111610ff95790506101e05260206101c060246101dc845afa61046d573d600060003e3d6000fd5b60203d10610ff9576101c0905051602061108b600039600051808202811583838304141715610ff957905090506101a0526104a96101e0610cec565b6101e0516101c05260206110ab60003960005163a035b1fe610200526020610200600461021c845afa6104e1573d600060003e3d6000fd5b60203d10610ff9576102009050516101e052610180516101a0511161053d57670de0b6b3a76400006101e05111610ff957610180516101a051808203828111610ff95790509050600581049050604052610576610be956610576565b670de0b6b3a76400006101e05110610ff9576101a05161018051808203828111610ff95790509050600581049050604052610576610b23565b610581610220610cec565b61022051610200526101c0516102005110156105fd576010610220527f70656720756e70726f66697461626c65000000000000000000000000000000006102405261022050610220518061024001601f826000031636823750506308c379a06101e052602061020052601f19601f6102205101166044016101fcfd5b610200516101c051808203828111610ff957905090506102205261022051600254808202811583838304141715610ff95790509050620186a0810490506102405261024051156106a757602061100b60003960005163a9059cbb610260526101605161028052610240516102a0526020610260604461027c6000855af1610689573d600060003e3d6000fd5b60203d10610ff957610260518060011c610ff9576102c0526102c050505b60206102405bf35b639f5ef86f811861070b5760243610610ff9576003543318610ff957620186a060043511610ff9576004356002557f43abfd568a12e5f6ea230e56ba11b83e29e9921019211df9cc2e216ba9f225dc60043560405260206040a1005b632c9f7f9281186107b95760043610610ff95761072860e0610cec565b60e05160c052602061100b60003960005163a9059cbb60e0526005546101005260c05161012052602060e0604460fc6000855af161076b573d600060003e3d6000fd5b60203d10610ff95760e0518060011c610ff9576101405261014050507f357d905f1831209797df4d55d79c5c5bf1d9f7311c976afd05e13d881eab9bc860c05160e052602060e0a1602060c0f35b63f636b05f81186108375760243610610ff9576004358060a01c610ff9576040526003543318610ff957600754610ff957426203f4808101818110610ff95790506060526060516007556040516004557f0305c49816a5a9a099d81e90d76421c9a4a529e0640cd15297b6fc8f1c9ac6ff60405160805260206080a1005b63c336fbd581186108a35760043610610ff9576004546040526040513318610ff9576007544210610ff95760075415610ff95760405160035560006007557fc0a6e80c08b9d10c650a9f3e8ff16d7ee0f62bbd5c8ac3b5eba62dae04ec995a60405160605260206060a1005b63561a414781186109215760243610610ff9576004358060a01c610ff9576040526003543318610ff957600854610ff957426203f4808101818110610ff95790506060526060516008556040516006557ff918f289f5185efe74d8bdf25364dbbc9c83a2bc438ede64b939cf6751ccf27c60405160805260206080a1005b63ceb667c581186109845760043610610ff9576008544210610ff95760085415610ff95760065460405260405160055560006008557fd9338c71e91ed720d2bd77976c87a0cd6f01ee443a6410481ffdebb9f442db6760405160605260206060a1005b637bfd8fad8118610a045760043610610ff9576003543318610ff957600060075560006008557fc0a6e80c08b9d10c650a9f3e8ff16d7ee0f62bbd5c8ac3b5eba62dae04ec995a60035460405260206040a17fd9338c71e91ed720d2bd77976c87a0cd6f01ee443a6410481ffdebb9f442db6760055460405260206040a1005b63394b146d8118610a235760043610610ff95760005460405260206040f35b630dca59c18118610a425760043610610ff95760015460405260206040f35b63df81cd3f8118610a615760043610610ff95760025460405260206040f35b63f851a4408118610a805760043610610ff95760035460405260206040f35b6317f7182a8118610a9f5760043610610ff95760045460405260206040f35b63f7260d3e8118610abe5760043610610ff95760055460405260206040f35b633bea9ddd8118610add5760043610610ff95760065460405260206040f35b63553b549c8118610afc5760043610610ff95760075460405260206040f35b63623960668118610b1b5760043610610ff95760085460405260206040f35b505b60006000fd5b604051610b2f57610be7565b604036606037604051602061102b60003960005160018111610ff95760051b60600152602061100b600039600051630b4c7e4d60a05260605160c05260805160e052600061010052602060a0606460bc6000855af1610b93573d600060003e3d6000fd5b60203d10610ff95760a0505042600055600154604051808201828110610ff957905090506001557f8d685bd3f45d861c759ed7a46ea3d30eb5cc6ce9fe06c526931f94c963bca7d260405160a052602060a0a15b565b604051610bf557610cea565b6001546060526040516060518082811882841002189050905060805260403660a037608051602061102b60003960005160018111610ff95760051b60a00152602061100b60003960005163e310327360e05260a0516101005260c051610120527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61014052602060e0606460fc6000855af1610c96573d600060003e3d6000fd5b60203d10610ff95760e0505042600055600154608051808203828111610ff957905090506001557f5b6b431d4476a211bb7d41c20d1aab9ae2321deee0d20be3d9fc9b1093fa6e3d60805160e052602060e0a15b565b602061100b6000396000516370a0823160605230608052602060606024607c845afa610d1d573d600060003e3d6000fd5b60203d10610ff9576060905051604052602061100b60003960005163bb7b8b80608052602060806004609c845afa610d5a573d600060003e3d6000fd5b60203d10610ff9576080905051606052600154670de0b6b3a7640000810281670de0b6b3a7640000820418610ff95790506060518015610ff95780820490509050670de0b6b3a76400008101818110610ff95790506080526080516040511115610dde57604051608051808203828111610ff95790509050815250610de456610de4565b60008152505b565b602061100b6000396000516370a0823160a0523060c052602060a0602460bc845afa610e17573d600060003e3d6000fd5b60203d10610ff95760a090505160805260015460a05260405160c052606051610e515760405160a0518082811882841002189050905060c0525b60403660e03760c051602061102b60003960005160018111610ff95760051b60e00152602061100b60003960005163ed8e84f36101405260e0516101605261010051610180526060516101a0526020610140606461015c845afa610eba573d600060003e3d6000fd5b60203d10610ff95761014090505161012052606051610f075760805161012051808203828111610ff9579050905060805260a05160c051808203828111610ff9579050905060a052610f37565b60805161012051808201828110610ff9579050905060805260a05160c051808201828110610ff9579050905060a0525b602061100b60003960005163bb7b8b80610160526020610160600461017c845afa610f67573d600060003e3d6000fd5b60203d10610ff9576101609050516101405260a051670de0b6b3a7640000810281670de0b6b3a7640000820418610ff9579050610140518015610ff95780820490509050670de0b6b3a76400008101818110610ff957905061016052610160516080511115610ff15760805161016051808203828111610ff95790509050815250610ff756610ff7565b60008152505b565b600080fda165767970657283000307000b000000000000000000000000390f3595bca2df7d23783dfd126427cceb997bf40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000f939e0a03fb07f59a73314e73794be0e57ac1b4e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e8d4a51000000000000000000000000000e5afcf332a5457e8fafcd668bce3df953762dfe7000000000000000000000000c9332fdcb1c491dcc683bae86fe3cb70360738bc
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000390f3595bca2df7d23783dfd126427cceb997bf40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000ecb456ea5365865ebab8a2661b0c503410e9b3470000000000000000000000000000000000000000000000000000000000004e20000000000000000000000000c9332fdcb1c491dcc683bae86fe3cb70360738bc000000000000000000000000e5afcf332a5457e8fafcd668bce3df953762dfe700000000000000000000000040907540d8a6c65c637785e8f8b742ae6b0b9968
-----Decoded View---------------
Arg [0] : _pool (address): 0x390f3595bCa2Df7d23783dFd126427CCeb997BF4
Arg [1] : _index (uint256): 1
Arg [2] : _receiver (address): 0xeCb456EA5365865EbAb8a2661B0c503410e9B347
Arg [3] : _caller_share (uint256): 20000
Arg [4] : _factory (address): 0xC9332fdCB1C491Dcc683bAe86Fe3cb70360738BC
Arg [5] : _aggregator (address): 0xe5Afcf332a5457E8FafCD668BcE3dF953762Dfe7
Arg [6] : _admin (address): 0x40907540d8a6C65c637785e8f8B742ae6b0b9968
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 000000000000000000000000390f3595bca2df7d23783dfd126427cceb997bf4
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [2] : 000000000000000000000000ecb456ea5365865ebab8a2661b0c503410e9b347
Arg [3] : 0000000000000000000000000000000000000000000000000000000000004e20
Arg [4] : 000000000000000000000000c9332fdcb1c491dcc683bae86fe3cb70360738bc
Arg [5] : 000000000000000000000000e5afcf332a5457e8fafcd668bce3df953762dfe7
Arg [6] : 00000000000000000000000040907540d8a6c65c637785e8f8b742ae6b0b9968
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 ]
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.