Latest 25 from a total of 1,092 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Mint | 31134682 | 2 days ago | IN | 0 FRAX | 0.00000354 | ||||
| Mint | 31129213 | 2 days ago | IN | 0 FRAX | 0.00000626 | ||||
| Mint | 31106190 | 3 days ago | IN | 0 FRAX | 0.00001188 | ||||
| Mint | 31106064 | 3 days ago | IN | 0 FRAX | 0.00001299 | ||||
| Mint | 31094122 | 3 days ago | IN | 0 FRAX | 0.00001741 | ||||
| Mint | 31010088 | 5 days ago | IN | 0 FRAX | 0.00000241 | ||||
| Mint | 31009625 | 5 days ago | IN | 0 FRAX | 0.00000297 | ||||
| Mint | 30976383 | 6 days ago | IN | 0 FRAX | 0.00000313 | ||||
| Mint | 30944583 | 7 days ago | IN | 0 FRAX | 0.00000273 | ||||
| Mint | 30859298 | 9 days ago | IN | 0 FRAX | 0.00000396 | ||||
| Mint | 30714528 | 12 days ago | IN | 0 FRAX | 0.00001328 | ||||
| Mint | 30656709 | 13 days ago | IN | 0 FRAX | 0.00000272 | ||||
| Mint | 30613015 | 14 days ago | IN | 0 FRAX | 0.00000277 | ||||
| Mint | 30577438 | 15 days ago | IN | 0 FRAX | 0.00000868 | ||||
| Mint | 30473727 | 17 days ago | IN | 0 FRAX | 0.0000035 | ||||
| Mint | 30384950 | 20 days ago | IN | 0 FRAX | 0.000004 | ||||
| Mint | 30363490 | 20 days ago | IN | 0 FRAX | 0.00000392 | ||||
| Mint | 30268719 | 22 days ago | IN | 0 FRAX | 0.0000036 | ||||
| Mint | 30125417 | 26 days ago | IN | 0 FRAX | 0.00000278 | ||||
| Mint | 30052385 | 27 days ago | IN | 0 FRAX | 0.00000238 | ||||
| Mint | 30025537 | 28 days ago | IN | 0 FRAX | 0.00000232 | ||||
| Mint | 30016717 | 28 days ago | IN | 0 FRAX | 0.00000283 | ||||
| Mint | 29705391 | 35 days ago | IN | 0 FRAX | 0.00000229 | ||||
| Mint | 29672251 | 36 days ago | IN | 0 FRAX | 0.00003137 | ||||
| Mint | 29644563 | 37 days ago | IN | 0 FRAX | 0.00000223 |
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 | Block | From | To | ||||
|---|---|---|---|---|---|---|---|
| 31250187 | 3 mins ago | 0 FRAX | |||||
| 31250187 | 3 mins ago | 0 FRAX | |||||
| 31250187 | 3 mins ago | 0 FRAX | |||||
| 31250187 | 3 mins ago | 0 FRAX | |||||
| 31250187 | 3 mins ago | 0 FRAX | |||||
| 31250187 | 3 mins ago | 0 FRAX | |||||
| 31250187 | 3 mins ago | 0 FRAX | |||||
| 31250187 | 3 mins ago | 0 FRAX | |||||
| 31250187 | 3 mins ago | 0 FRAX | |||||
| 31250187 | 3 mins ago | 0 FRAX | |||||
| 31250180 | 3 mins ago | 0 FRAX | |||||
| 31250180 | 3 mins ago | 0 FRAX | |||||
| 31250180 | 3 mins ago | 0 FRAX | |||||
| 31250180 | 3 mins ago | 0 FRAX | |||||
| 31250180 | 3 mins ago | 0 FRAX | |||||
| 31250180 | 3 mins ago | 0 FRAX | |||||
| 31250180 | 3 mins ago | 0 FRAX | |||||
| 31250180 | 3 mins ago | 0 FRAX | |||||
| 31250180 | 3 mins ago | 0 FRAX | |||||
| 31250180 | 3 mins ago | 0 FRAX | |||||
| 31250180 | 3 mins ago | 0 FRAX | |||||
| 31250180 | 3 mins ago | 0 FRAX | |||||
| 31250180 | 3 mins ago | 0 FRAX | |||||
| 31250180 | 3 mins ago | 0 FRAX | |||||
| 31250180 | 3 mins ago | 0 FRAX |
Cross-Chain Transactions
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
Child Liquidity Gauge Factory
Compiler Version
vyper:0.3.10
Contract Source Code (Vyper language format)
# pragma version 0.3.10
"""
@title Child Liquidity Gauge Factory
@license MIT
@author Curve Finance
@custom:version 2.0.0
"""
version: public(constant(String[8])) = "2.0.0"
from vyper.interfaces import ERC20
interface ChildGauge:
def initialize(_lp_token: address, _root: address, _manager: address): nonpayable
def integrate_fraction(_user: address) -> uint256: view
def user_checkpoint(_user: address) -> bool: nonpayable
interface CallProxy:
def anyCall(
_to: address, _data: Bytes[1024], _fallback: address, _to_chain_id: uint256
): nonpayable
event DeployedGauge:
_implementation: indexed(address)
_lp_token: indexed(address)
_deployer: indexed(address)
_salt: bytes32
_gauge: address
event Minted:
_user: indexed(address)
_gauge: indexed(address)
_new_total: uint256
event UpdateImplementation:
_old_implementation: address
_new_implementation: address
event UpdateVotingEscrow:
_old_voting_escrow: address
_new_voting_escrow: address
event UpdateRoot:
_factory: address
_implementation: address
event UpdateManager:
_manager: address
event UpdateCallProxy:
_old_call_proxy: address
_new_call_proxy: address
event UpdateMirrored:
_gauge: indexed(address)
_mirrored: bool
event TransferOwnership:
_old_owner: address
_new_owner: address
WEEK: constant(uint256) = 86400 * 7
crv: public(ERC20)
get_implementation: public(address)
voting_escrow: public(address)
owner: public(address)
future_owner: public(address)
manager: public(address)
root_factory: public(address)
root_implementation: public(address)
call_proxy: public(address)
# [last_request][has_counterpart][is_valid_gauge]
gauge_data: public(HashMap[address, uint256])
# user -> gauge -> value
minted: public(HashMap[address, HashMap[address, uint256]])
get_gauge_from_lp_token: public(HashMap[address, address])
get_gauge_count: public(uint256)
get_gauge: public(address[max_value(int128)])
@external
def __init__(_call_proxy: address, _root_factory: address, _root_impl: address, _crv: address, _owner: address):
"""
@param _call_proxy Contract for
@param _root_factory Root factory to anchor to
@param _root_impl Address of root gauge implementation to calculate mirror (can be updated)
@param _crv Bridged CRV token address (might be zero if not known yet)
@param _owner Owner of factory (xgov)
"""
self.crv = ERC20(_crv)
self.call_proxy = _call_proxy
log UpdateCallProxy(empty(address), _call_proxy)
assert _root_factory != empty(address)
assert _root_impl != empty(address)
self.root_factory = _root_factory
self.root_implementation = _root_impl
log UpdateRoot(_root_factory, _root_impl)
self.owner = _owner
log TransferOwnership(empty(address), _owner)
self.manager = msg.sender
log UpdateManager(msg.sender)
@internal
def _psuedo_mint(_gauge: address, _user: address):
gauge_data: uint256 = self.gauge_data[_gauge]
assert gauge_data != 0 # dev: invalid gauge
# if is_mirrored and last_request != this week
if gauge_data & 2 != 0 and (gauge_data >> 2) / WEEK != block.timestamp / WEEK:
CallProxy(self.call_proxy).anyCall(
self,
_abi_encode(_gauge, method_id=method_id("transmit_emissions(address)")),
empty(address),
1,
)
# update last request time
self.gauge_data[_gauge] = block.timestamp << 2 + 3
assert ChildGauge(_gauge).user_checkpoint(_user)
total_mint: uint256 = ChildGauge(_gauge).integrate_fraction(_user)
to_mint: uint256 = total_mint - self.minted[_user][_gauge]
if to_mint != 0 and self.crv != empty(ERC20):
assert self.crv.transfer(_user, to_mint, default_return_value=True)
self.minted[_user][_gauge] = total_mint
log Minted(_user, _gauge, total_mint)
@external
@nonreentrant("lock")
def mint(_gauge: address):
"""
@notice Mint everything which belongs to `msg.sender` and send to them
@param _gauge `LiquidityGauge` address to get mintable amount from
"""
self._psuedo_mint(_gauge, msg.sender)
@external
@nonreentrant("lock")
def mint_many(_gauges: address[32]):
"""
@notice Mint everything which belongs to `msg.sender` across multiple gauges
@param _gauges List of `LiquidityGauge` addresses
"""
for i in range(32):
if _gauges[i] == empty(address):
pass
self._psuedo_mint(_gauges[i], msg.sender)
@external
def deploy_gauge(_lp_token: address, _salt: bytes32, _manager: address = msg.sender) -> address:
"""
@notice Deploy a liquidity gauge
@param _lp_token The token to deposit in the gauge
@param _salt A value to deterministically deploy a gauge
@param _manager The address to set as manager of the gauge
"""
if self.get_gauge_from_lp_token[_lp_token] != empty(address):
# overwriting lp_token -> gauge mapping requires
assert msg.sender == self.owner # dev: only owner
gauge_data: uint256 = 1 # set is_valid_gauge = True
implementation: address = self.get_implementation
salt: bytes32 = keccak256(_abi_encode(chain.id, _salt))
gauge: address = create_minimal_proxy_to(
implementation, salt=salt
)
if msg.sender == self.call_proxy:
gauge_data += 2 # set mirrored = True
log UpdateMirrored(gauge, True)
# issue a call to the root chain to deploy a root gauge
CallProxy(self.call_proxy).anyCall(
self,
_abi_encode(chain.id, _salt, method_id=method_id("deploy_gauge(uint256,bytes32)")),
empty(address),
1
)
self.gauge_data[gauge] = gauge_data
idx: uint256 = self.get_gauge_count
self.get_gauge[idx] = gauge
self.get_gauge_count = idx + 1
self.get_gauge_from_lp_token[_lp_token] = gauge
# derive root gauge address
gauge_codehash: bytes32 = keccak256(
concat(
0x602d3d8160093d39f3363d3d373d3d3d363d73,
convert(self.root_implementation, bytes20),
0x5af43d82803e903d91602b57fd5bf3,
)
)
digest: bytes32 = keccak256(concat(0xFF, convert(self.root_factory, bytes20), salt, gauge_codehash))
root: address = convert(convert(digest, uint256) & convert(max_value(uint160), uint256), address)
# If root is uninitialized, self.owner can always set the root gauge manually
# on the gauge contract itself via set_root_gauge method
ChildGauge(gauge).initialize(_lp_token, root, _manager)
log DeployedGauge(implementation, _lp_token, msg.sender, _salt, gauge)
return gauge
@external
def set_crv(_crv: ERC20):
"""
@notice Sets CRV token address
@dev Child gauges reference the factory to fetch CRV address
If empty, the gauges do not mint any CRV tokens.
@param _crv address of CRV token on child chain
"""
assert msg.sender == self.owner
assert _crv != empty(ERC20)
self.crv = _crv
@external
def set_root(_factory: address, _implementation: address):
"""
@notice Update root addresses
@dev Addresses are used only as helper methods
@param _factory Root gauge factory
@param _implementation Root gauge
"""
assert msg.sender in [self.owner, self.manager] # dev: access denied
self.root_factory = _factory
self.root_implementation = _implementation
log UpdateRoot(_factory, _implementation)
@external
def set_voting_escrow(_voting_escrow: address):
"""
@notice Update the voting escrow contract
@param _voting_escrow Contract to use as the voting escrow oracle
"""
assert msg.sender == self.owner # dev: only owner
log UpdateVotingEscrow(self.voting_escrow, _voting_escrow)
self.voting_escrow = _voting_escrow
@external
def set_implementation(_implementation: address):
"""
@notice Set the implementation
@param _implementation The address of the implementation to use
"""
assert msg.sender == self.owner # dev: only owner
log UpdateImplementation(self.get_implementation, _implementation)
self.get_implementation = _implementation
@external
def set_mirrored(_gauge: address, _mirrored: bool):
"""
@notice Set the mirrored bit of the gauge data for `_gauge`
@param _gauge The gauge of interest
@param _mirrored Boolean deteremining whether to set the mirrored bit to True/False
"""
gauge_data: uint256 = self.gauge_data[_gauge]
assert gauge_data != 0 # dev: invalid gauge
assert msg.sender == self.owner # dev: only owner
gauge_data = gauge_data | 1 # set is_valid_gauge = True
if _mirrored:
gauge_data += 2 # set is_mirrored = True
self.gauge_data[_gauge] = gauge_data
log UpdateMirrored(_gauge, _mirrored)
@external
def set_call_proxy(_new_call_proxy: address):
"""
@notice Set the address of the call proxy used
@dev _new_call_proxy should adhere to the same interface as defined
@param _new_call_proxy Address of the cross chain call proxy
"""
assert msg.sender == self.owner
log UpdateCallProxy(self.call_proxy, _new_call_proxy)
self.call_proxy = _new_call_proxy
@external
def set_manager(_new_manager: address):
assert msg.sender in [self.owner, self.manager] # dev: access denied
self.manager = _new_manager
log UpdateManager(_new_manager)
@external
def commit_transfer_ownership(_future_owner: address):
"""
@notice Transfer ownership to `_future_owner`
@param _future_owner The account to commit as the future owner
"""
assert msg.sender == self.owner # dev: only owner
self.future_owner = _future_owner
@external
def accept_transfer_ownership():
"""
@notice Accept the transfer of ownership
@dev Only the committed future owner can call this function
"""
assert msg.sender == self.future_owner # dev: only future owner
log TransferOwnership(self.owner, msg.sender)
self.owner = msg.sender
@view
@external
def is_valid_gauge(_gauge: address) -> bool:
"""
@notice Query whether the gauge is a valid one deployed via the factory
@param _gauge The address of the gauge of interest
"""
return self.gauge_data[_gauge] != 0
@view
@external
def is_mirrored(_gauge: address) -> bool:
"""
@notice Query whether the gauge is mirrored on Ethereum mainnet
@param _gauge The address of the gauge of interest
"""
return (self.gauge_data[_gauge] & 2) != 0
@view
@external
def last_request(_gauge: address) -> uint256:
"""
@notice Query the timestamp of the last cross chain request for emissions
@param _gauge The address of the gauge of interest
"""
return self.gauge_data[_gauge] >> 2Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"name":"DeployedGauge","inputs":[{"name":"_implementation","type":"address","indexed":true},{"name":"_lp_token","type":"address","indexed":true},{"name":"_deployer","type":"address","indexed":true},{"name":"_salt","type":"bytes32","indexed":false},{"name":"_gauge","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"Minted","inputs":[{"name":"_user","type":"address","indexed":true},{"name":"_gauge","type":"address","indexed":true},{"name":"_new_total","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateImplementation","inputs":[{"name":"_old_implementation","type":"address","indexed":false},{"name":"_new_implementation","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateVotingEscrow","inputs":[{"name":"_old_voting_escrow","type":"address","indexed":false},{"name":"_new_voting_escrow","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateRoot","inputs":[{"name":"_factory","type":"address","indexed":false},{"name":"_implementation","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateManager","inputs":[{"name":"_manager","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateCallProxy","inputs":[{"name":"_old_call_proxy","type":"address","indexed":false},{"name":"_new_call_proxy","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateMirrored","inputs":[{"name":"_gauge","type":"address","indexed":true},{"name":"_mirrored","type":"bool","indexed":false}],"anonymous":false,"type":"event"},{"name":"TransferOwnership","inputs":[{"name":"_old_owner","type":"address","indexed":false},{"name":"_new_owner","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_call_proxy","type":"address"},{"name":"_root_factory","type":"address"},{"name":"_root_impl","type":"address"},{"name":"_crv","type":"address"},{"name":"_owner","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"mint","inputs":[{"name":"_gauge","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"mint_many","inputs":[{"name":"_gauges","type":"address[32]"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"deploy_gauge","inputs":[{"name":"_lp_token","type":"address"},{"name":"_salt","type":"bytes32"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"deploy_gauge","inputs":[{"name":"_lp_token","type":"address"},{"name":"_salt","type":"bytes32"},{"name":"_manager","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"set_crv","inputs":[{"name":"_crv","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_root","inputs":[{"name":"_factory","type":"address"},{"name":"_implementation","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_voting_escrow","inputs":[{"name":"_voting_escrow","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_implementation","inputs":[{"name":"_implementation","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_mirrored","inputs":[{"name":"_gauge","type":"address"},{"name":"_mirrored","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_call_proxy","inputs":[{"name":"_new_call_proxy","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_manager","inputs":[{"name":"_new_manager","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_ownership","inputs":[{"name":"_future_owner","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_ownership","inputs":[],"outputs":[]},{"stateMutability":"view","type":"function","name":"is_valid_gauge","inputs":[{"name":"_gauge","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"is_mirrored","inputs":[{"name":"_gauge","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"last_request","inputs":[{"name":"_gauge","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"view","type":"function","name":"crv","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"get_implementation","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"voting_escrow","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"future_owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"manager","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"root_factory","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"root_implementation","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"call_proxy","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"gauge_data","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"minted","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_gauge_from_lp_token","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"get_gauge_count","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_gauge","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}]}]Contract Creation Code
3461016b57602061127e5f395f518060a01c61016b57604052602061129e5f395f518060a01c61016b5760605260206112be5f395f518060a01c61016b5760805260206112de5f395f518060a01c61016b5760a05260206112fe5f395f518060a01c61016b5760c05260a0516001556040516009557fe385116766307e81d4427b03f1ac50c300b2f6a5df7b3c67eeb7eaaab12f08055f60e05260405161010052604060e0a16060511561016b576080511561016b576060516007556080516008557f70f9501abbdc1e859ff8c1a6d83d3cb1ba973674e97c3e3c2292540d6e40dcfe60605160e05260805161010052604060e0a160c0516004557f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c5f60e05260c05161010052604060e0a1336006557f5c18ab5c697b63d102fc7e14c77bfaef0f1013206eca139920fd389277814e093360e052602060e0a16110fa61016f610000396110fa610000f35b5f80fd5f3560e01c6002601d820660011b6110c001601e395f51565b6354fd4d50811861009657346110bc5760208060805260056040527f322e302e3000000000000000000000000000000000000000000000000000000060605260408160800181518152602082015160208201528051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b631ec0cdc181186100b257346110bc5760055460405260206040f35b6366e1de658118610e35576044361034176110bc576004358060a01c6110bc576040526024358060a01c6110bc576060523360045481186100f45760016100fb565b6006548118155b9050156110bc576040516007556060516008557f70f9501abbdc1e859ff8c1a6d83d3cb1ba973674e97c3e3c2292540d6e40dcfe60405160805260605160a05260406080a100610e35565b636a4874a18118610e3557346110bc5760015460405260206040f3610e35565b63c781c6688118610e3557346110bc5760025460405260206040f3610e35565b63dfe0503181186101a257346110bc5760035460405260206040f35b639aece83e8118610e35576024361034176110bc576004358060a01c6110bc576040523360045481186101d65760016101dd565b6006548118155b9050156110bc576040516006557f5c18ab5c697b63d102fc7e14c77bfaef0f1013206eca139920fd389277814e0960405160605260206060a100610e35565b638da5cb5b811861023857346110bc5760045460405260206040f35b63285218488118610e35576024361034176110bc576004356f7ffffffffffffffffffffffffffffffe81116110bc57600e015460405260206040f3610e35565b63481c6a758118610e3557346110bc5760065460405260206040f3610e35565b633043228d8118610e3557346110bc5760075460405260206040f3610e35565b637de035c18118610e3557346110bc5760085460405260206040f3610e35565b63f81c6c3e81186102f457346110bc5760095460405260206040f35b635d95c65e8118610e35576024361034176110bc576004358060a01c6110bc57604052600c6040516020525f5260405f205460605260206060f3610e35565b63f0ce32f8811861036e576024361034176110bc576004358060a01c6110bc57604052600a6040516020525f5260405f205460605260206060f35b632d4841218118610e35576024361034176110bc576004358060a01c6110bc5760405260045433186110bc57604051156110bc5760405160015500610e35565b638b752bb08118610e35576044361034176110bc576004358060a01c6110bc576040526024358060a01c6110bc57606052600b6040516020525f5260405f20806060516020525f5260405f2090505460805260206080f3610e35565b63f111569c8118610e3557346110bc57600d5460405260206040f3610e35565b636a6278428118610e35576024361034176110bc576004358060a01c6110bc57610200525f546002146110bc5760025f55610200516040523360605261046e610e39565b60035f5500610e35565b6355ec67088118610e3557610404361034176110bc576004358060a01c6110bc57610200526024358060a01c6110bc57610220526044358060a01c6110bc57610240526064358060a01c6110bc57610260526084358060a01c6110bc576102805260a4358060a01c6110bc576102a05260c4358060a01c6110bc576102c05260e4358060a01c6110bc576102e052610104358060a01c6110bc5761030052610124358060a01c6110bc5761032052610144358060a01c6110bc5761034052610164358060a01c6110bc5761036052610184358060a01c6110bc57610380526101a4358060a01c6110bc576103a0526101c4358060a01c6110bc576103c0526101e4358060a01c6110bc576103e052610204358060a01c6110bc5761040052610224358060a01c6110bc5761042052610244358060a01c6110bc5761044052610264358060a01c6110bc5761046052610284358060a01c6110bc57610480526102a4358060a01c6110bc576104a0526102c4358060a01c6110bc576104c0526102e4358060a01c6110bc576104e052610304358060a01c6110bc5761050052610324358060a01c6110bc5761052052610344358060a01c6110bc5761054052610364358060a01c6110bc5761056052610384358060a01c6110bc57610580526103a4358060a01c6110bc576105a0526103c4358060a01c6110bc576105c0526103e4358060a01c6110bc576105e0525f546002146110bc5760025f555f6020905b806106005261060051601f81116110bc5760051b61020001516106b6575b61060051601f81116110bc5760051b6102000151604052336060526106d9610e39565b60010181811861069857505060035f5500610e35565b638db98b5c8118610e35576044361034176110bc573360605261073556610e35565b636be320d28118610e35576064361034176110bc576044358060a01c6110bc576060525b6004358060a01c6110bc57604052600c6040516020525f5260405f2054156107615760045433186110bc575b600160805260025460a052466101005260243561012052604060e05260e080516020820120905060c0527f602d3d8160093d39f3363d3d373d3d3d363d73000000000000000000000000006101005260a05160601b610113527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006101275260c05160366101005ff580156110bc5760e05260095433186108e157608051600281018181106110bc57905060805260e0517f54b0a41dd85251df77437effbf9fbdca133bd234e7771816495877177288092c6001610100526020610100a260095463f9754c93610180526080306101a052806101c05263e10a16b861010452600446610124526024356101445260400161010052610100816101a00160208251018082828560045afa50508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190505f6101e05260016102005250803b156110bc575f61018061010461019c5f855af16108df573d5f5f3e3d5ffd5b505b608051600a60e0516020525f5260405f2055600d546101005260e051610100516f7ffffffffffffffffffffffffffffffe81116110bc57600e015561010051600181018181106110bc579050600d5560e051600c6040516020525f5260405f20555f7f602d3d8160093d39f3363d3d373d3d3d363d73000000000000000000000000008161016001526013810190506008548060601b90508161016001526014810190507f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000816101600152600f8101905080610140526101409050805160208201209050610120525f7fff000000000000000000000000000000000000000000000000000000000000008161018001526001810190506007548060601b905081610180015260148101905060c05181610180015260208101905061012051816101800152602081019050806101605261016090508051602082012090506101405273ffffffffffffffffffffffffffffffffffffffff61014051168060a01c6110bc576101605260e05163c0c53b8b610180526040516101a052610160516101c0526060516101e052803b156110bc575f610180606461019c5f855af1610aaa573d5f5f3e3d5ffd5b503360405160a0517f69e16554b097f489830077da86e9e40cc91529a8d0787c42c4f33a0a337a0e086024356101805260e0516101a0526040610180a4602060e0f3610e35565b6323fc5a478118610e35576024361034176110bc576004358060a01c6110bc5760405260045433186110bc577fa1b167642dcf1fee2fbf716c48c7c3f2326e4f26020cb042cd6405dfa72f4fd260035460605260405160805260406060a160405160035500610e35565b634cd69da08118610e35576024361034176110bc576004358060a01c6110bc5760405260045433186110bc577fcdfeee65e4d0a88d6e47c5d034c34b03d52f1e6ffc56906257fc93d993ca04c460025460605260405160805260406060a160405160025500610e35565b634b29cac88118610c81576044361034176110bc576004358060a01c6110bc576040526024358060011c6110bc57606052600a6040516020525f5260405f2054608052608051156110bc5760045433186110bc5760016080511760805260605115610c3e57608051600281018181106110bc5790506080525b608051600a6040516020525f5260405f20556040517f54b0a41dd85251df77437effbf9fbdca133bd234e7771816495877177288092c60605160a052602060a0a2005b636b441a408118610e35576024361034176110bc576004358060a01c6110bc5760405260045433186110bc5760405160055500610e35565b635ecb9e148118610e35576024361034176110bc576004358060a01c6110bc5760405260045433186110bc577fe385116766307e81d4427b03f1ac50c300b2f6a5df7b3c67eeb7eaaab12f080560095460605260405160805260406060a160405160095500610e35565b63e5ea47b88118610d7257346110bc5760055433186110bc577f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c6004546040523360605260406040a133600455005b6351bd4db58118610e35576024361034176110bc576004358060a01c6110bc57604052600a6040516020525f5260405f205460021c60605260206060f3610e35565b634b9203798118610e35576024361034176110bc576004358060a01c6110bc57604052600a6040516020525f5260405f2054151560605260206060f3610e35565b638a42bd828118610e35576024361034176110bc576004358060a01c6110bc576040526002600a6040516020525f5260405f205416151560605260206060f35b5f5ffd5b600a6040516020525f5260405f2054608052608051156110bc5760026080511615610e7c574262093a808104905060805160021c62093a80810490501415610e7e565b5f5b15610f2f5760095463f9754c93610100526080306101205280610140526311bfb95660a452600460405160c45260200160a05260a0816101200160208251018082828560045afa50508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190505f6101605260016101805250803b156110bc575f61010060e461011c5f855af1610f1a573d5f5f3e3d5ffd5b504260051b600a6040516020525f5260405f20555b604051634b82009360a05260605160c052602060a0602460bc5f855af1610f58573d5f5f3e3d5ffd5b60203d106110bc5760a0518060011c6110bc5760e05260e0905051156110bc57604051630940070760c05260605160e052602060c0602460dc845afa610fa0573d5f5f3e3d5ffd5b60203d106110bc5760c090505160a05260a051600b6060516020525f5260405f20806040516020525f5260405f209050548082038281116110bc579050905060c05260c05115610ff4576001541515610ff6565b5f5b156110ba5760015463a9059cbb60e0526060516101005260c05161012052602060e0604460fc5f855af161102c573d5f5f3e3d5ffd5b3d61104357803b156110bc5760016101405261105b565b60203d106110bc5760e0518060011c6110bc57610140525b610140905051156110bc5760a051600b6060516020525f5260405f20806040516020525f5260405f209050556040516060517f9d228d69b5fdb8d273a2336f8fb8612d039631024ea9bf09c424a9503aa078f060a05160e052602060e0a35b565b5f80fd0e3503330e350e350bc5042a07110db40cb90af10b5b03ae040a0e350e35001802780478021c0e3502d801460d23018602b80298016606ef0df5841910fa81183a00a16576797065728300030a00150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306a45a1478a000dc701a6e1f7a569afb8d9dcd600000000000000000000000096720942f9ff22efd8611f696e5333fe3671717a000000000000000000000000331b9182088e2a7d6d3fe4742aba1fb231aecc56000000000000000000000000ae50429025b59c9d62ae9c3a52a657bc7ab64036
Deployed Bytecode
0x5f3560e01c6002601d820660011b6110c001601e395f51565b6354fd4d50811861009657346110bc5760208060805260056040527f322e302e3000000000000000000000000000000000000000000000000000000060605260408160800181518152602082015160208201528051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b631ec0cdc181186100b257346110bc5760055460405260206040f35b6366e1de658118610e35576044361034176110bc576004358060a01c6110bc576040526024358060a01c6110bc576060523360045481186100f45760016100fb565b6006548118155b9050156110bc576040516007556060516008557f70f9501abbdc1e859ff8c1a6d83d3cb1ba973674e97c3e3c2292540d6e40dcfe60405160805260605160a05260406080a100610e35565b636a4874a18118610e3557346110bc5760015460405260206040f3610e35565b63c781c6688118610e3557346110bc5760025460405260206040f3610e35565b63dfe0503181186101a257346110bc5760035460405260206040f35b639aece83e8118610e35576024361034176110bc576004358060a01c6110bc576040523360045481186101d65760016101dd565b6006548118155b9050156110bc576040516006557f5c18ab5c697b63d102fc7e14c77bfaef0f1013206eca139920fd389277814e0960405160605260206060a100610e35565b638da5cb5b811861023857346110bc5760045460405260206040f35b63285218488118610e35576024361034176110bc576004356f7ffffffffffffffffffffffffffffffe81116110bc57600e015460405260206040f3610e35565b63481c6a758118610e3557346110bc5760065460405260206040f3610e35565b633043228d8118610e3557346110bc5760075460405260206040f3610e35565b637de035c18118610e3557346110bc5760085460405260206040f3610e35565b63f81c6c3e81186102f457346110bc5760095460405260206040f35b635d95c65e8118610e35576024361034176110bc576004358060a01c6110bc57604052600c6040516020525f5260405f205460605260206060f3610e35565b63f0ce32f8811861036e576024361034176110bc576004358060a01c6110bc57604052600a6040516020525f5260405f205460605260206060f35b632d4841218118610e35576024361034176110bc576004358060a01c6110bc5760405260045433186110bc57604051156110bc5760405160015500610e35565b638b752bb08118610e35576044361034176110bc576004358060a01c6110bc576040526024358060a01c6110bc57606052600b6040516020525f5260405f20806060516020525f5260405f2090505460805260206080f3610e35565b63f111569c8118610e3557346110bc57600d5460405260206040f3610e35565b636a6278428118610e35576024361034176110bc576004358060a01c6110bc57610200525f546002146110bc5760025f55610200516040523360605261046e610e39565b60035f5500610e35565b6355ec67088118610e3557610404361034176110bc576004358060a01c6110bc57610200526024358060a01c6110bc57610220526044358060a01c6110bc57610240526064358060a01c6110bc57610260526084358060a01c6110bc576102805260a4358060a01c6110bc576102a05260c4358060a01c6110bc576102c05260e4358060a01c6110bc576102e052610104358060a01c6110bc5761030052610124358060a01c6110bc5761032052610144358060a01c6110bc5761034052610164358060a01c6110bc5761036052610184358060a01c6110bc57610380526101a4358060a01c6110bc576103a0526101c4358060a01c6110bc576103c0526101e4358060a01c6110bc576103e052610204358060a01c6110bc5761040052610224358060a01c6110bc5761042052610244358060a01c6110bc5761044052610264358060a01c6110bc5761046052610284358060a01c6110bc57610480526102a4358060a01c6110bc576104a0526102c4358060a01c6110bc576104c0526102e4358060a01c6110bc576104e052610304358060a01c6110bc5761050052610324358060a01c6110bc5761052052610344358060a01c6110bc5761054052610364358060a01c6110bc5761056052610384358060a01c6110bc57610580526103a4358060a01c6110bc576105a0526103c4358060a01c6110bc576105c0526103e4358060a01c6110bc576105e0525f546002146110bc5760025f555f6020905b806106005261060051601f81116110bc5760051b61020001516106b6575b61060051601f81116110bc5760051b6102000151604052336060526106d9610e39565b60010181811861069857505060035f5500610e35565b638db98b5c8118610e35576044361034176110bc573360605261073556610e35565b636be320d28118610e35576064361034176110bc576044358060a01c6110bc576060525b6004358060a01c6110bc57604052600c6040516020525f5260405f2054156107615760045433186110bc575b600160805260025460a052466101005260243561012052604060e05260e080516020820120905060c0527f602d3d8160093d39f3363d3d373d3d3d363d73000000000000000000000000006101005260a05160601b610113527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006101275260c05160366101005ff580156110bc5760e05260095433186108e157608051600281018181106110bc57905060805260e0517f54b0a41dd85251df77437effbf9fbdca133bd234e7771816495877177288092c6001610100526020610100a260095463f9754c93610180526080306101a052806101c05263e10a16b861010452600446610124526024356101445260400161010052610100816101a00160208251018082828560045afa50508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190505f6101e05260016102005250803b156110bc575f61018061010461019c5f855af16108df573d5f5f3e3d5ffd5b505b608051600a60e0516020525f5260405f2055600d546101005260e051610100516f7ffffffffffffffffffffffffffffffe81116110bc57600e015561010051600181018181106110bc579050600d5560e051600c6040516020525f5260405f20555f7f602d3d8160093d39f3363d3d373d3d3d363d73000000000000000000000000008161016001526013810190506008548060601b90508161016001526014810190507f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000816101600152600f8101905080610140526101409050805160208201209050610120525f7fff000000000000000000000000000000000000000000000000000000000000008161018001526001810190506007548060601b905081610180015260148101905060c05181610180015260208101905061012051816101800152602081019050806101605261016090508051602082012090506101405273ffffffffffffffffffffffffffffffffffffffff61014051168060a01c6110bc576101605260e05163c0c53b8b610180526040516101a052610160516101c0526060516101e052803b156110bc575f610180606461019c5f855af1610aaa573d5f5f3e3d5ffd5b503360405160a0517f69e16554b097f489830077da86e9e40cc91529a8d0787c42c4f33a0a337a0e086024356101805260e0516101a0526040610180a4602060e0f3610e35565b6323fc5a478118610e35576024361034176110bc576004358060a01c6110bc5760405260045433186110bc577fa1b167642dcf1fee2fbf716c48c7c3f2326e4f26020cb042cd6405dfa72f4fd260035460605260405160805260406060a160405160035500610e35565b634cd69da08118610e35576024361034176110bc576004358060a01c6110bc5760405260045433186110bc577fcdfeee65e4d0a88d6e47c5d034c34b03d52f1e6ffc56906257fc93d993ca04c460025460605260405160805260406060a160405160025500610e35565b634b29cac88118610c81576044361034176110bc576004358060a01c6110bc576040526024358060011c6110bc57606052600a6040516020525f5260405f2054608052608051156110bc5760045433186110bc5760016080511760805260605115610c3e57608051600281018181106110bc5790506080525b608051600a6040516020525f5260405f20556040517f54b0a41dd85251df77437effbf9fbdca133bd234e7771816495877177288092c60605160a052602060a0a2005b636b441a408118610e35576024361034176110bc576004358060a01c6110bc5760405260045433186110bc5760405160055500610e35565b635ecb9e148118610e35576024361034176110bc576004358060a01c6110bc5760405260045433186110bc577fe385116766307e81d4427b03f1ac50c300b2f6a5df7b3c67eeb7eaaab12f080560095460605260405160805260406060a160405160095500610e35565b63e5ea47b88118610d7257346110bc5760055433186110bc577f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c6004546040523360605260406040a133600455005b6351bd4db58118610e35576024361034176110bc576004358060a01c6110bc57604052600a6040516020525f5260405f205460021c60605260206060f3610e35565b634b9203798118610e35576024361034176110bc576004358060a01c6110bc57604052600a6040516020525f5260405f2054151560605260206060f3610e35565b638a42bd828118610e35576024361034176110bc576004358060a01c6110bc576040526002600a6040516020525f5260405f205416151560605260206060f35b5f5ffd5b600a6040516020525f5260405f2054608052608051156110bc5760026080511615610e7c574262093a808104905060805160021c62093a80810490501415610e7e565b5f5b15610f2f5760095463f9754c93610100526080306101205280610140526311bfb95660a452600460405160c45260200160a05260a0816101200160208251018082828560045afa50508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190505f6101605260016101805250803b156110bc575f61010060e461011c5f855af1610f1a573d5f5f3e3d5ffd5b504260051b600a6040516020525f5260405f20555b604051634b82009360a05260605160c052602060a0602460bc5f855af1610f58573d5f5f3e3d5ffd5b60203d106110bc5760a0518060011c6110bc5760e05260e0905051156110bc57604051630940070760c05260605160e052602060c0602460dc845afa610fa0573d5f5f3e3d5ffd5b60203d106110bc5760c090505160a05260a051600b6060516020525f5260405f20806040516020525f5260405f209050548082038281116110bc579050905060c05260c05115610ff4576001541515610ff6565b5f5b156110ba5760015463a9059cbb60e0526060516101005260c05161012052602060e0604460fc5f855af161102c573d5f5f3e3d5ffd5b3d61104357803b156110bc5760016101405261105b565b60203d106110bc5760e0518060011c6110bc57610140525b610140905051156110bc5760a051600b6060516020525f5260405f20806040516020525f5260405f209050556040516060517f9d228d69b5fdb8d273a2336f8fb8612d039631024ea9bf09c424a9503aa078f060a05160e052602060e0a35b565b5f80fd0e3503330e350e350bc5042a07110db40cb90af10b5b03ae040a0e350e35001802780478021c0e3502d801460d23018602b80298016606ef0df5
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306a45a1478a000dc701a6e1f7a569afb8d9dcd600000000000000000000000096720942f9ff22efd8611f696e5333fe3671717a000000000000000000000000331b9182088e2a7d6d3fe4742aba1fb231aecc56000000000000000000000000ae50429025b59c9d62ae9c3a52a657bc7ab64036
-----Decoded View---------------
Arg [0] : _call_proxy (address): 0x0000000000000000000000000000000000000000
Arg [1] : _root_factory (address): 0x306A45a1478A000dC701A6e1f7a569afb8D9DCD6
Arg [2] : _root_impl (address): 0x96720942F9fF22eFd8611F696E5333Fe3671717a
Arg [3] : _crv (address): 0x331B9182088e2A7d6D3Fe4742AbA1fB231aEcc56
Arg [4] : _owner (address): 0xaE50429025B59C9D62Ae9c3A52a657BC7AB64036
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [1] : 000000000000000000000000306a45a1478a000dc701a6e1f7a569afb8d9dcd6
Arg [2] : 00000000000000000000000096720942f9ff22efd8611f696e5333fe3671717a
Arg [3] : 000000000000000000000000331b9182088e2a7d6d3fe4742aba1fb231aecc56
Arg [4] : 000000000000000000000000ae50429025b59c9d62ae9c3a52a657bc7ab64036
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$4,525.15
Net Worth in FRAX
4,560.487213
Token Allocations
CRV
100.00%
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| FRAXTAL | 100.00% | $0.356636 | 12,688.4242 | $4,525.15 |
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.