Latest 10 internal transactions
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 10161636 | 493 days ago | Contract Creation | 0 FRAX | |||
| 10161636 | 493 days ago | Contract Creation | 0 FRAX | |||
| 9466097 | 509 days ago | Contract Creation | 0 FRAX | |||
| 9466097 | 509 days ago | Contract Creation | 0 FRAX | |||
| 9466090 | 509 days ago | Contract Creation | 0 FRAX | |||
| 9466090 | 509 days ago | Contract Creation | 0 FRAX | |||
| 9466083 | 509 days ago | Contract Creation | 0 FRAX | |||
| 9466083 | 509 days ago | Contract Creation | 0 FRAX | |||
| 9466075 | 509 days ago | Contract Creation | 0 FRAX | |||
| 9466075 | 509 days ago | Contract Creation | 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:
OneWayLendingFactory
Compiler Version
vyper:0.3.10
Contract Source Code (Vyper language format)
# @version 0.3.10
"""
@title OneWayLendingFactory
@notice Factory of non-rehypothecated lending vaults: collateral is not being lent out.
Although Vault.vy allows both, we should have this simpler version and rehypothecating version.
This version is for L2s: it does not create gauges by itself but uses Gauge Factory to read gauge info.
@author Curve.fi
@license Copyright (c) Curve.Fi, 2020-2024 - all rights reserved
"""
interface Vault:
def initialize(
amm_impl: address,
controller_impl: address,
borrowed_token: address,
collateral_token: address,
A: uint256,
fee: uint256,
price_oracle: address,
monetary_policy: address,
loan_discount: uint256,
liquidation_discount: uint256
) -> (address, address): nonpayable
def amm() -> address: view
def controller() -> address: view
def borrowed_token() -> address: view
def collateral_token() -> address: view
def price_oracle() -> address: view
def set_max_supply(_value: uint256): nonpayable
interface Controller:
def monetary_policy() -> address: view
interface AMM:
def get_dy(i: uint256, j: uint256, in_amount: uint256) -> uint256: view
def get_dx(i: uint256, j: uint256, out_amount: uint256) -> uint256: view
def get_dydx(i: uint256, j: uint256, out_amount: uint256) -> (uint256, uint256): view
def exchange(i: uint256, j: uint256, in_amount: uint256, min_amount: uint256, _for: address) -> uint256[2]: nonpayable
def exchange_dy(i: uint256, j: uint256, out_amount: uint256, max_amount: uint256, _for: address) -> uint256[2]: nonpayable
interface Pool:
def price_oracle(i: uint256 = 0) -> uint256: view # Universal method!
def coins(i: uint256) -> address: view
interface GaugeFactory:
def get_gauge_from_lp_token(addr: address) -> address: view
event SetImplementations:
amm: address
controller: address
vault: address
price_oracle: address
monetary_policy: address
gauge_factory: address
event SetDefaultRates:
min_rate: uint256
max_rate: uint256
event SetAdmin:
admin: address
event NewVault:
id: indexed(uint256)
collateral_token: indexed(address)
borrowed_token: indexed(address)
vault: address
controller: address
amm: address
price_oracle: address
monetary_policy: address
STABLECOIN: public(immutable(address))
# These are limits for default borrow rates, NOT actual min and max rates.
# Even governance cannot go beyond these rates before a new code is shipped
MIN_RATE: public(constant(uint256)) = 10**15 / (365 * 86400) # 0.1%
MAX_RATE: public(constant(uint256)) = 10**19 / (365 * 86400) # 1000%
# Implementations which can be changed by governance
amm_impl: public(address)
controller_impl: public(address)
vault_impl: public(address)
pool_price_oracle_impl: public(address)
monetary_policy_impl: public(address)
# Actual min/max borrow rates when creating new markets
# for example, 0.5% -> 50% is a good choice
min_default_borrow_rate: public(uint256)
max_default_borrow_rate: public(uint256)
# Admin is supposed to be the DAO
admin: public(address)
# Vaults can only be created but not removed
vaults: public(Vault[10**18])
amms: public(AMM[10**18])
_vaults_index: HashMap[Vault, uint256]
market_count: public(uint256)
# Index to find vaults by a non-crvUSD token
token_to_vaults: public(HashMap[address, Vault[10**18]])
token_market_count: public(HashMap[address, uint256])
names: public(HashMap[uint256, String[64]])
gauge_factory: public(GaugeFactory)
@external
def __init__(
stablecoin: address,
amm: address,
controller: address,
vault: address,
pool_price_oracle: address,
monetary_policy: address,
gauge_factory: GaugeFactory,
admin: address):
"""
@notice Factory which creates one-way lending vaults (e.g. collateral is non-borrowable)
@param stablecoin Address of crvUSD. Only crvUSD-containing markets are allowed
@param amm Address of AMM implementation
@param controller Address of Controller implementation
@param pool_price_oracle Address of implementation for price oracle factory (prices from pools)
@param monetary_policy Address for implementation of monetary policy
@param gauge_factory Address for gauge factory on this L2
@param admin Admin address (DAO)
"""
STABLECOIN = stablecoin
self.amm_impl = amm
self.controller_impl = controller
self.vault_impl = vault
self.pool_price_oracle_impl = pool_price_oracle
self.monetary_policy_impl = monetary_policy
self.gauge_factory = gauge_factory
self.min_default_borrow_rate = 5 * 10**15 / (365 * 86400)
self.max_default_borrow_rate = 50 * 10**16 / (365 * 86400)
self.admin = admin
@internal
def _create(
borrowed_token: address,
collateral_token: address,
A: uint256,
fee: uint256,
loan_discount: uint256,
liquidation_discount: uint256,
price_oracle: address,
name: String[64],
min_borrow_rate: uint256,
max_borrow_rate: uint256
) -> Vault:
"""
@notice Internal method for creation of the vault
"""
assert borrowed_token != collateral_token, "Same token"
assert borrowed_token == STABLECOIN or collateral_token == STABLECOIN
vault: Vault = Vault(create_minimal_proxy_to(self.vault_impl))
min_rate: uint256 = self.min_default_borrow_rate
max_rate: uint256 = self.max_default_borrow_rate
if min_borrow_rate > 0:
min_rate = min_borrow_rate
if max_borrow_rate > 0:
max_rate = max_borrow_rate
assert min_rate >= MIN_RATE and max_rate <= MAX_RATE and min_rate <= max_rate, "Wrong rates"
monetary_policy: address = create_from_blueprint(
self.monetary_policy_impl, borrowed_token, min_rate, max_rate, code_offset=3)
controller: address = empty(address)
amm: address = empty(address)
controller, amm = vault.initialize(
self.amm_impl, self.controller_impl,
borrowed_token, collateral_token,
A, fee,
price_oracle,
monetary_policy,
loan_discount, liquidation_discount
)
market_count: uint256 = self.market_count
log NewVault(market_count, collateral_token, borrowed_token, vault.address, controller, amm, price_oracle, monetary_policy)
self.vaults[market_count] = vault
self.amms[market_count] = AMM(amm)
self._vaults_index[vault] = market_count + 2**128
self.names[market_count] = name
self.market_count = market_count + 1
token: address = borrowed_token
if borrowed_token == STABLECOIN:
token = collateral_token
market_count = self.token_market_count[token]
self.token_to_vaults[token][market_count] = vault
self.token_market_count[token] = market_count + 1
return vault
@external
@nonreentrant('lock')
def create(
borrowed_token: address,
collateral_token: address,
A: uint256,
fee: uint256,
loan_discount: uint256,
liquidation_discount: uint256,
price_oracle: address,
name: String[64],
min_borrow_rate: uint256 = 0,
max_borrow_rate: uint256 = 0,
supply_limit: uint256 = max_value(uint256)
) -> Vault:
"""
@notice Creation of the vault using user-supplied price oracle contract
@param borrowed_token Token which is being borrowed
@param collateral_token Token used for collateral
@param A Amplification coefficient: band size is ~1/A
@param fee Fee for swaps in AMM (for ETH markets found to be 0.6%)
@param loan_discount Maximum discount. LTV = sqrt(((A - 1) / A) ** 4) - loan_discount
@param liquidation_discount Liquidation discount. LT = sqrt(((A - 1) / A) ** 4) - liquidation_discount
@param price_oracle Custom price oracle contract
@param name Human-readable market name
@param min_borrow_rate Custom minimum borrow rate (otherwise min_default_borrow_rate)
@param max_borrow_rate Custom maximum borrow rate (otherwise max_default_borrow_rate)
@param supply_limit Supply cap
"""
vault: Vault = self._create(borrowed_token, collateral_token, A, fee, loan_discount, liquidation_discount,
price_oracle, name, min_borrow_rate, max_borrow_rate)
if supply_limit < max_value(uint256):
vault.set_max_supply(supply_limit)
return vault
@external
@nonreentrant('lock')
def create_from_pool(
borrowed_token: address,
collateral_token: address,
A: uint256,
fee: uint256,
loan_discount: uint256,
liquidation_discount: uint256,
pool: address,
name: String[64],
min_borrow_rate: uint256 = 0,
max_borrow_rate: uint256 = 0,
supply_limit: uint256 = max_value(uint256)
) -> Vault:
"""
@notice Creation of the vault using existing oraclized Curve pool as a price oracle
@param borrowed_token Token which is being borrowed
@param collateral_token Token used for collateral
@param A Amplification coefficient: band size is ~1/A
@param fee Fee for swaps in AMM (for ETH markets found to be 0.6%)
@param loan_discount Maximum discount. LTV = sqrt(((A - 1) / A) ** 4) - loan_discount
@param liquidation_discount Liquidation discount. LT = sqrt(((A - 1) / A) ** 4) - liquidation_discount
@param pool Curve tricrypto-ng, twocrypto-ng or stableswap-ng pool which has non-manipulatable price_oracle().
Must contain both collateral_token and borrowed_token.
@param name Human-readable market name
@param min_borrow_rate Custom minimum borrow rate (otherwise min_default_borrow_rate)
@param max_borrow_rate Custom maximum borrow rate (otherwise max_default_borrow_rate)
@param supply_limit Supply cap
"""
# Find coins in the pool
borrowed_ix: uint256 = 100
collateral_ix: uint256 = 100
N: uint256 = 0
for i in range(10):
success: bool = False
res: Bytes[32] = empty(Bytes[32])
success, res = raw_call(
pool,
_abi_encode(i, method_id=method_id("coins(uint256)")),
max_outsize=32, is_static_call=True, revert_on_failure=False)
coin: address = convert(res, address)
if not success or coin == empty(address):
break
N += 1
if coin == borrowed_token:
borrowed_ix = i
elif coin == collateral_token:
collateral_ix = i
if collateral_ix == 100 or borrowed_ix == 100:
raise "Tokens not in pool"
price_oracle: address = create_from_blueprint(
self.pool_price_oracle_impl, pool, N, borrowed_ix, collateral_ix, code_offset=3)
vault: Vault = self._create(borrowed_token, collateral_token, A, fee, loan_discount, liquidation_discount,
price_oracle, name, min_borrow_rate, max_borrow_rate)
if supply_limit < max_value(uint256):
vault.set_max_supply(supply_limit)
return vault
@view
@external
def controllers(n: uint256) -> address:
return self.vaults[n].controller()
@view
@external
def borrowed_tokens(n: uint256) -> address:
return self.vaults[n].borrowed_token()
@view
@external
def collateral_tokens(n: uint256) -> address:
return self.vaults[n].collateral_token()
@view
@external
def price_oracles(n: uint256) -> address:
return self.vaults[n].price_oracle()
@view
@external
def monetary_policies(n: uint256) -> address:
return Controller(self.vaults[n].controller()).monetary_policy()
@view
@external
def vaults_index(vault: Vault) -> uint256:
return self._vaults_index[vault] - 2**128
@view
@external
def gauge_for_vault(vault: address) -> address:
out: address = self.gauge_factory.get_gauge_from_lp_token(vault)
assert out != empty(address)
return out
@view
@external
def gauges(vault_id: uint256) -> address:
return self.gauge_factory.get_gauge_from_lp_token(self.vaults[vault_id].address)
@external
@nonreentrant('lock')
def set_implementations(controller: address, amm: address, vault: address,
pool_price_oracle: address, monetary_policy: address, gauge_factory: address):
"""
@notice Set new implementations (blueprints) for controller, amm, vault, pool price oracle and monetary polcy.
Doesn't change existing ones
@param controller Address of the controller blueprint
@param amm Address of the AMM blueprint
@param vault Address of the Vault template
@param pool_price_oracle Address of the pool price oracle blueprint
@param monetary_policy Address of the monetary policy blueprint
@param gauge_factory Address for gauge factory
"""
assert msg.sender == self.admin
if controller != empty(address):
self.controller_impl = controller
if amm != empty(address):
self.amm_impl = amm
if vault != empty(address):
self.vault_impl = vault
if pool_price_oracle != empty(address):
self.pool_price_oracle_impl = pool_price_oracle
if monetary_policy != empty(address):
self.monetary_policy_impl = monetary_policy
if gauge_factory != empty(address):
self.gauge_factory = GaugeFactory(gauge_factory)
log SetImplementations(amm, controller, vault, pool_price_oracle, monetary_policy, gauge_factory)
@external
@nonreentrant('lock')
def set_default_rates(min_rate: uint256, max_rate: uint256):
"""
@notice Change min and max default borrow rates for creating new markets
@param min_rate Minimal borrow rate (0 utilization)
@param max_rate Maxumum borrow rate (100% utilization)
"""
assert msg.sender == self.admin
assert min_rate >= MIN_RATE
assert max_rate <= MAX_RATE
assert max_rate >= min_rate
self.min_default_borrow_rate = min_rate
self.max_default_borrow_rate = max_rate
log SetDefaultRates(min_rate, max_rate)
@external
@nonreentrant('lock')
def set_admin(admin: address):
"""
@notice Set admin of the factory (should end up with DAO)
@param admin Address of the admin
"""
assert msg.sender == self.admin
self.admin = admin
log SetAdmin(admin)
@external
@view
def coins(vault_id: uint256) -> address[2]:
vault: Vault = self.vaults[vault_id]
return [vault.borrowed_token(), vault.collateral_token()]Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"name":"SetImplementations","inputs":[{"name":"amm","type":"address","indexed":false},{"name":"controller","type":"address","indexed":false},{"name":"vault","type":"address","indexed":false},{"name":"price_oracle","type":"address","indexed":false},{"name":"monetary_policy","type":"address","indexed":false},{"name":"gauge_factory","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetDefaultRates","inputs":[{"name":"min_rate","type":"uint256","indexed":false},{"name":"max_rate","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetAdmin","inputs":[{"name":"admin","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"NewVault","inputs":[{"name":"id","type":"uint256","indexed":true},{"name":"collateral_token","type":"address","indexed":true},{"name":"borrowed_token","type":"address","indexed":true},{"name":"vault","type":"address","indexed":false},{"name":"controller","type":"address","indexed":false},{"name":"amm","type":"address","indexed":false},{"name":"price_oracle","type":"address","indexed":false},{"name":"monetary_policy","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"stablecoin","type":"address"},{"name":"amm","type":"address"},{"name":"controller","type":"address"},{"name":"vault","type":"address"},{"name":"pool_price_oracle","type":"address"},{"name":"monetary_policy","type":"address"},{"name":"gauge_factory","type":"address"},{"name":"admin","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"create","inputs":[{"name":"borrowed_token","type":"address"},{"name":"collateral_token","type":"address"},{"name":"A","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"loan_discount","type":"uint256"},{"name":"liquidation_discount","type":"uint256"},{"name":"price_oracle","type":"address"},{"name":"name","type":"string"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"create","inputs":[{"name":"borrowed_token","type":"address"},{"name":"collateral_token","type":"address"},{"name":"A","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"loan_discount","type":"uint256"},{"name":"liquidation_discount","type":"uint256"},{"name":"price_oracle","type":"address"},{"name":"name","type":"string"},{"name":"min_borrow_rate","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"create","inputs":[{"name":"borrowed_token","type":"address"},{"name":"collateral_token","type":"address"},{"name":"A","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"loan_discount","type":"uint256"},{"name":"liquidation_discount","type":"uint256"},{"name":"price_oracle","type":"address"},{"name":"name","type":"string"},{"name":"min_borrow_rate","type":"uint256"},{"name":"max_borrow_rate","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"create","inputs":[{"name":"borrowed_token","type":"address"},{"name":"collateral_token","type":"address"},{"name":"A","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"loan_discount","type":"uint256"},{"name":"liquidation_discount","type":"uint256"},{"name":"price_oracle","type":"address"},{"name":"name","type":"string"},{"name":"min_borrow_rate","type":"uint256"},{"name":"max_borrow_rate","type":"uint256"},{"name":"supply_limit","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"create_from_pool","inputs":[{"name":"borrowed_token","type":"address"},{"name":"collateral_token","type":"address"},{"name":"A","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"loan_discount","type":"uint256"},{"name":"liquidation_discount","type":"uint256"},{"name":"pool","type":"address"},{"name":"name","type":"string"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"create_from_pool","inputs":[{"name":"borrowed_token","type":"address"},{"name":"collateral_token","type":"address"},{"name":"A","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"loan_discount","type":"uint256"},{"name":"liquidation_discount","type":"uint256"},{"name":"pool","type":"address"},{"name":"name","type":"string"},{"name":"min_borrow_rate","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"create_from_pool","inputs":[{"name":"borrowed_token","type":"address"},{"name":"collateral_token","type":"address"},{"name":"A","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"loan_discount","type":"uint256"},{"name":"liquidation_discount","type":"uint256"},{"name":"pool","type":"address"},{"name":"name","type":"string"},{"name":"min_borrow_rate","type":"uint256"},{"name":"max_borrow_rate","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"create_from_pool","inputs":[{"name":"borrowed_token","type":"address"},{"name":"collateral_token","type":"address"},{"name":"A","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"loan_discount","type":"uint256"},{"name":"liquidation_discount","type":"uint256"},{"name":"pool","type":"address"},{"name":"name","type":"string"},{"name":"min_borrow_rate","type":"uint256"},{"name":"max_borrow_rate","type":"uint256"},{"name":"supply_limit","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"controllers","inputs":[{"name":"n","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"borrowed_tokens","inputs":[{"name":"n","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"collateral_tokens","inputs":[{"name":"n","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"price_oracles","inputs":[{"name":"n","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"monetary_policies","inputs":[{"name":"n","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"vaults_index","inputs":[{"name":"vault","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"gauge_for_vault","inputs":[{"name":"vault","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"gauges","inputs":[{"name":"vault_id","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"set_implementations","inputs":[{"name":"controller","type":"address"},{"name":"amm","type":"address"},{"name":"vault","type":"address"},{"name":"pool_price_oracle","type":"address"},{"name":"monetary_policy","type":"address"},{"name":"gauge_factory","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_default_rates","inputs":[{"name":"min_rate","type":"uint256"},{"name":"max_rate","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_admin","inputs":[{"name":"admin","type":"address"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"coins","inputs":[{"name":"vault_id","type":"uint256"}],"outputs":[{"name":"","type":"address[2]"}]},{"stateMutability":"view","type":"function","name":"STABLECOIN","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"MIN_RATE","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"MAX_RATE","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"amm_impl","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"controller_impl","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"vault_impl","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"pool_price_oracle_impl","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"monetary_policy_impl","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"min_default_borrow_rate","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"max_default_borrow_rate","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"vaults","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"amms","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"market_count","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"token_to_vaults","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"token_market_count","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"names","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"view","type":"function","name":"gauge_factory","inputs":[],"outputs":[{"name":"","type":"address"}]}]Contract Creation Code
6115885150346101085760206116aa5f395f518060a01c6101085760405260206116ca5f395f518060a01c6101085760605260206116ea5f395f518060a01c61010857608052602061170a5f395f518060a01c6101085760a052602061172a5f395f518060a01c6101085760c052602061174a5f395f518060a01c6101085760e052602061176a5f395f518060a01c6101085761010052602061178a5f395f518060a01c61010857610120526040516115885260605160015560805160025560a05160035560c05160045560e05160055561010051671bc16d674ec8000e5563097343df6006556403b10683776007556101205160085561158861010c610000396115a8610000f35b5f80fd5f3560e01c60026025820660011b61153e01601e395f51565b6393a39776811861105b573461153a57602061158860403960206040f361105b565b63d819bfef811861105b573461153a576301e3da5f60405260206040f361105b565b63c24dbebd811861105b573461153a576449d482455d60405260206040f361105b565b63041622b5811861105b573461153a5760015460405260206040f361105b565b63168819c081186100bb573461153a5760025460405260206040f35b638c64ea4a811861105b5760243610341761153a57600435670de0b6b3a763ffff811161153a576009015460405260206040f361105b565b636677b287811861105b573461153a5760035460405260206040f361105b565b630b91bd27811861012f573461153a5760045460405260206040f35b6373edeb30811861017c576101443610341761153a57610104356104e0525f610500527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610520526107b5565b63c6610657811861105b5760243610341761153a57600435670de0b6b3a763ffff811161153a576009015460405260405163765337b6606052602060606004607c845afa6101cc573d5f5f3e3d5ffd5b60203d1061153a576060518060a01c61153a5760a05260a090505161012052604051632621db2f60c052602060c0600460dc845afa61020d573d5f5f3e3d5ffd5b60203d1061153a5760c0518060a01c61153a5761010052610100905051610140526040610120f361105b565b63247ec8788118610255573461153a5760055460405260206040f35b634622ab03811861105b5760243610341761153a57602080604052671bc16d674ec8000d6004356020525f5260405f208160400160208254015f81601f0160051c6003811161153a5780156102bc57905b808501548160051b8501526001018181186102a6575b5050508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506040f361105b565b633cfd3d8c811861030a573461153a5760065460405260206040f35b636c3a55e5811861105b576101843610341761153a5760606101046104e0375b6004358060a01c61153a57610420526024358060a01c61153a576104405260c4358060a01c61153a576104605260e435600401604081351161153a57602081350180826104803750505f5460021461153a5760025f55610420516040526104405160605260806044608037610460516101005260206104805101806101208261048060045afa50506104e05161018052610500516101a0526103cd61056061105f565b61056051610540527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61052051146104365761054051638a938f2f610560526105205161058052803b1561153a575f610560602461057c5f855af1610434573d5f5f3e3d5ffd5b505b602061054060035f55f361105b565b6399d0b1ba811861105b573461153a5760075460405260206040f361105b565b63f851a4408118610481573461153a5760085460405260206040f35b63a8acf8df81186104d95760443610341761153a576004358060a01c61153a57604052671bc16d674ec8000b6040516020525f5260405f20602435670de0b6b3a763ffff811161153a57810190505460605260206060f35b635904e8dc811861105b576101443610341761153a57610104356104e0525f610500527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105205261032a5661105b565b6386a8cdbc81186105655760243610341761153a57600435670de0b6b3a763ffff811161153a57670de0b6b3a7640009015460405260206040f35b63c6f2a81d811861105b5760243610341761153a576020600435670de0b6b3a763ffff811161153a57600901546386fc88d3604052602060406004605c845afa6105b1573d5f5f3e3d5ffd5b60203d1061153a576040518060a01c61153a5760805260809050f361105b565b63fd775c78811861105b573461153a57671bc16d674ec8000a5460405260206040f361105b565b63e5f260ba811861105b5760243610341761153a576004358060a01c61153a57604052671bc16d674ec8000c6040516020525f5260405f205460605260206060f361105b565b63e8980c6e811861105b573461153a57671bc16d674ec8000e5460405260206040f361105b565b639c3b70a6811861105b576101243610341761153a576040366104e0377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105205261032a5661105b565b635673683f811861105b576101643610341761153a5760406101046104e0377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105205261032a5661105b565b63d984d2a1811861105b576101243610341761153a576040366104e0377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610520526107b55661105b565b63bccc056c811861105b576101643610341761153a5760406101046104e0377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610520526107b55661105b565b634351e30b811861105b576101843610341761153a5760606101046104e0375b6004358060a01c61153a57610420526024358060a01c61153a576104405260c4358060a01c61153a576104605260e435600401604081351161153a57602081350180826104803750505f5460021461153a5760025f556064610540526064610560525f610580525f600a905b806105a0526040366105c037610460515a63c66106576106245260046105a05161064452602001610620526106205060206106a0610620516106408585fa905090506105c0523d602081183d60201002186106805261068080516105e05260208101516106005250610600516105e05160200360031b1c8060a01c61153a57610620526105c0516108b35760016108b9565b61062051155b156108c357610913565b610580516001810181811061153a579050610580526104205161062051186108f2576105a05161054052610908565b610440516106205118610908576105a051610560525b600101818118610821575b505060646105605118610927576001610930565b60646105405118155b1561099a5760126105a0527f546f6b656e73206e6f7420696e20706f6f6c00000000000000000000000000006105c0526105a0506105a051806105c001601f825f031636823750506308c379a061056052602061058052601f19601f6105a051011660440161057cfd5b600454610460516105c0526105c05161064052610580516105e0526105e05161066052610540516106005261060051610680526105605161062052610620516106a05260806003823b03596001821261153a5781600382863c81810183818561064060045afa5050828201815ff0801561153a5790509050905090506105a0526104205160405261044051606052608060446080376105a0516101005260206104805101806101208261048060045afa50506104e05161018052610500516101a052610a676105e061105f565b6105e0516105c0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105205114610ad0576105c051638a938f2f6105e0526105205161060052803b1561153a575f6105e060246105fc5f855af1610ace573d5f5f3e3d5ffd5b505b60206105c060035f55f361105b565b63e94b0dd2811861105b5760243610341761153a576020600435670de0b6b3a763ffff811161153a576009015463f77c4791604052602060406004605c845afa610b2b573d5f5f3e3d5ffd5b60203d1061153a576040518060a01c61153a5760805260809050f361105b565b636fe4501f811861105b5760243610341761153a576020600435670de0b6b3a763ffff811161153a576009015463765337b6604052602060406004605c845afa610b97573d5f5f3e3d5ffd5b60203d1061153a576040518060a01c61153a5760805260809050f361105b565b6349b899848118610c1f5760243610341761153a576020600435670de0b6b3a763ffff811161153a5760090154632621db2f604052602060406004605c845afa610c03573d5f5f3e3d5ffd5b60203d1061153a576040518060a01c61153a5760805260809050f35b63b0539187811861105b5760243610341761153a576020671bc16d674ec8000e54635d95c65e604052600435670de0b6b3a763ffff811161153a5760090154606052602060406024605c845afa610c78573d5f5f3e3d5ffd5b60203d1061153a576040518060a01c61153a5760805260809050f361105b565b63762e7b92811861105b5760243610341761153a576020600435670de0b6b3a763ffff811161153a576009015463f77c4791604052602060406004605c845afa610ce4573d5f5f3e3d5ffd5b60203d1061153a576040518060a01c61153a57608052608090505163adfae4ce60a052602060a0600460bc845afa610d1e573d5f5f3e3d5ffd5b60203d1061153a5760a0518060a01c61153a5760e05260e09050f361105b565b63bcf75a8f8118610d9d5760243610341761153a576004358060a01c61153a57604052671bc16d674ec800096040516020525f5260405f2054700100000000000000000000000000000000810381811161153a57905060605260206060f35b63a74fcf90811861105b5760443610341761153a575f5460021461153a5760025f55600854331861153a576301e3da5f6004351061153a576449d482455d6024351161153a576004356024351061153a576004356006556024356007557f279f1fe0f91b15d983792d0305a146961875690054db0d81bec8d1582461fc656040600460403760406040a160035f550061105b565b6350c1163a8118610eaf5760243610341761153a576004358060a01c61153a57604052671bc16d674ec8000e54635d95c65e60805260405160a052602060806024609c845afa610e83573d5f5f3e3d5ffd5b60203d1061153a576080518060a01c61153a5760c05260c09050516060526060511561153a5760206060f35b636c15eadf811861105b5760c43610341761153a576004358060a01c61153a576040526024358060a01c61153a576060526044358060a01c61153a576080526064358060a01c61153a5760a0526084358060a01c61153a5760c05260a4358060a01c61153a5760e0525f5460021461153a5760025f55600854331861153a5760405115610f3d576040516002555b60605115610f4c576060516001555b60805115610f5b576080516003555b60a05115610f6a5760a0516004555b60c05115610f795760c0516005555b60e05115610f8f5760e051671bc16d674ec8000e555b7f91d63b24386eae580bbbe65f3f50fd736c41031f36d85641bc13e74ac0cb95bb60605161010052604051610120526080516101405260a0516101605260c0516101805260e0516101a05260c0610100a160035f550061105b565b63e9333fab811861105b5760243610341761153a576004358060a01c61153a576040525f5460021461153a5760025f55600854331861153a576040516008557f5a272403b402d892977df56625f4164ccaf70ca3863991c43ecfe76a6905b0a160405160605260206060a160035f55005b5f5ffd5b606051604051186110cf57600a6101c0527f53616d6520746f6b656e000000000000000000000000000000000000000000006101e0526101c0506101c051806101e001601f825f031636823750506308c379a06101805260206101a052601f19601f6101c051011660440161019cfd5b60206115885f395f51604051186110e75760016110f6565b60206115885f395f5160605118155b1561153a577f602d3d8160093d39f3363d3d373d3d3d363d73000000000000000000000000006101e05260035460601b6101f3527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006102075260366101e05ff0801561153a576101c0526006546101e05260075461020052610180511561118057610180516101e0525b6101a05115611192576101a051610200525b6301e3da5f6101e05110156111a7575f6111c8565b6449d482455d6102005111156111bd575f6111c8565b610200516101e05111155b61123157600b610220527f57726f6e672072617465730000000000000000000000000000000000000000006102405261022050610220518061024001601f825f031636823750506308c379a06101e052602061020052601f19601f6102205101166044016101fcfd5b60055460405161024052610240516102a0526101e05161026052610260516102c0526102005161028052610280516102e05260606003823b03596001821261153a5781600382863c8181018381856102a060045afa5050828201815ff0801561153a57905090509050905061022052604036610240376101c0516343687bba610280526001546102a0526002546102c0526040516102e052606051610300526080516103205260a051610340526101005161036052610220516103805260c0516103a05260e0516103c052604061028061014461029c5f855af1611317573d5f5f3e3d5ffd5b60403d1061153a57610280518060a01c61153a576103e0526102a0518060a01c61153a57610400526103e0905080516102405260208101516102605250671bc16d674ec8000a5461028052604051606051610280517f2a854a597908740dff5f0846840f167547ea0d7614c43bde3ea49be2e68c07ec6101c0516102a052610240516102c052610260516102e0526101005161030052610220516103205260a06102a0a46101c05161028051670de0b6b3a763ffff811161153a57600901556102605161028051670de0b6b3a763ffff811161153a57670de0b6b3a7640009015561028051700100000000000000000000000000000000810181811061153a579050671bc16d674ec800096101c0516020525f5260405f205560206101205101671bc16d674ec8000d610280516020525f5260405f205f82601f0160051c6003811161153a57801561147d57905b8060051b610120015181840155600101818118611465575b50505050610280516001810181811061153a579050671bc16d674ec8000a556040516102a05260206115885f395f51604051186114bc576060516102a0525b671bc16d674ec8000c6102a0516020525f5260405f2054610280526101c051671bc16d674ec8000b6102a0516020525f5260405f2061028051670de0b6b3a763ffff811161153a578101905055610280516001810181811061153a579050671bc16d674ec8000c6102a0516020525f5260405f20556101c051815250565b5f80fd05f8105b0c9806fd05d1105b0465009f105b105b105b105b00180e31105b0239003a0d3e06b0105b052a007f02ee04450bb7063e079500f3105b105b0b4b0adf005c0fea0665074801138419158881184a1820a16576797065728300030a0016000000000000000000000000b102f7efa0d5de071a8d37b3548e1c7cb148caf300000000000000000000000059cffdc8cf8b9b71d91da6de480c957993020e8a0000000000000000000000007002b727ef8f5571cb5f9d70d13dbeeb4dfae9d1000000000000000000000000c1db00a8e5ef7bfa476395cdbcc98235477cde4e0000000000000000000000000cd5a1e9e19af1f1b910ac3c3452a16b2b37155b00000000000000000000000086d347ce5f1e6f7ef4da00fb7c8d31fbd16996f0000000000000000000000000ef672bd94913cb6f1d2812a6e18c1ffded8eff5c0000000000000000000000004bbdfed5696b3a8f6b3813506b5389959c5cdc57
Deployed Bytecode
0x5f3560e01c60026025820660011b61153e01601e395f51565b6393a39776811861105b573461153a57602061158860403960206040f361105b565b63d819bfef811861105b573461153a576301e3da5f60405260206040f361105b565b63c24dbebd811861105b573461153a576449d482455d60405260206040f361105b565b63041622b5811861105b573461153a5760015460405260206040f361105b565b63168819c081186100bb573461153a5760025460405260206040f35b638c64ea4a811861105b5760243610341761153a57600435670de0b6b3a763ffff811161153a576009015460405260206040f361105b565b636677b287811861105b573461153a5760035460405260206040f361105b565b630b91bd27811861012f573461153a5760045460405260206040f35b6373edeb30811861017c576101443610341761153a57610104356104e0525f610500527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610520526107b5565b63c6610657811861105b5760243610341761153a57600435670de0b6b3a763ffff811161153a576009015460405260405163765337b6606052602060606004607c845afa6101cc573d5f5f3e3d5ffd5b60203d1061153a576060518060a01c61153a5760a05260a090505161012052604051632621db2f60c052602060c0600460dc845afa61020d573d5f5f3e3d5ffd5b60203d1061153a5760c0518060a01c61153a5761010052610100905051610140526040610120f361105b565b63247ec8788118610255573461153a5760055460405260206040f35b634622ab03811861105b5760243610341761153a57602080604052671bc16d674ec8000d6004356020525f5260405f208160400160208254015f81601f0160051c6003811161153a5780156102bc57905b808501548160051b8501526001018181186102a6575b5050508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506040f361105b565b633cfd3d8c811861030a573461153a5760065460405260206040f35b636c3a55e5811861105b576101843610341761153a5760606101046104e0375b6004358060a01c61153a57610420526024358060a01c61153a576104405260c4358060a01c61153a576104605260e435600401604081351161153a57602081350180826104803750505f5460021461153a5760025f55610420516040526104405160605260806044608037610460516101005260206104805101806101208261048060045afa50506104e05161018052610500516101a0526103cd61056061105f565b61056051610540527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61052051146104365761054051638a938f2f610560526105205161058052803b1561153a575f610560602461057c5f855af1610434573d5f5f3e3d5ffd5b505b602061054060035f55f361105b565b6399d0b1ba811861105b573461153a5760075460405260206040f361105b565b63f851a4408118610481573461153a5760085460405260206040f35b63a8acf8df81186104d95760443610341761153a576004358060a01c61153a57604052671bc16d674ec8000b6040516020525f5260405f20602435670de0b6b3a763ffff811161153a57810190505460605260206060f35b635904e8dc811861105b576101443610341761153a57610104356104e0525f610500527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105205261032a5661105b565b6386a8cdbc81186105655760243610341761153a57600435670de0b6b3a763ffff811161153a57670de0b6b3a7640009015460405260206040f35b63c6f2a81d811861105b5760243610341761153a576020600435670de0b6b3a763ffff811161153a57600901546386fc88d3604052602060406004605c845afa6105b1573d5f5f3e3d5ffd5b60203d1061153a576040518060a01c61153a5760805260809050f361105b565b63fd775c78811861105b573461153a57671bc16d674ec8000a5460405260206040f361105b565b63e5f260ba811861105b5760243610341761153a576004358060a01c61153a57604052671bc16d674ec8000c6040516020525f5260405f205460605260206060f361105b565b63e8980c6e811861105b573461153a57671bc16d674ec8000e5460405260206040f361105b565b639c3b70a6811861105b576101243610341761153a576040366104e0377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105205261032a5661105b565b635673683f811861105b576101643610341761153a5760406101046104e0377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105205261032a5661105b565b63d984d2a1811861105b576101243610341761153a576040366104e0377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610520526107b55661105b565b63bccc056c811861105b576101643610341761153a5760406101046104e0377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610520526107b55661105b565b634351e30b811861105b576101843610341761153a5760606101046104e0375b6004358060a01c61153a57610420526024358060a01c61153a576104405260c4358060a01c61153a576104605260e435600401604081351161153a57602081350180826104803750505f5460021461153a5760025f556064610540526064610560525f610580525f600a905b806105a0526040366105c037610460515a63c66106576106245260046105a05161064452602001610620526106205060206106a0610620516106408585fa905090506105c0523d602081183d60201002186106805261068080516105e05260208101516106005250610600516105e05160200360031b1c8060a01c61153a57610620526105c0516108b35760016108b9565b61062051155b156108c357610913565b610580516001810181811061153a579050610580526104205161062051186108f2576105a05161054052610908565b610440516106205118610908576105a051610560525b600101818118610821575b505060646105605118610927576001610930565b60646105405118155b1561099a5760126105a0527f546f6b656e73206e6f7420696e20706f6f6c00000000000000000000000000006105c0526105a0506105a051806105c001601f825f031636823750506308c379a061056052602061058052601f19601f6105a051011660440161057cfd5b600454610460516105c0526105c05161064052610580516105e0526105e05161066052610540516106005261060051610680526105605161062052610620516106a05260806003823b03596001821261153a5781600382863c81810183818561064060045afa5050828201815ff0801561153a5790509050905090506105a0526104205160405261044051606052608060446080376105a0516101005260206104805101806101208261048060045afa50506104e05161018052610500516101a052610a676105e061105f565b6105e0516105c0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105205114610ad0576105c051638a938f2f6105e0526105205161060052803b1561153a575f6105e060246105fc5f855af1610ace573d5f5f3e3d5ffd5b505b60206105c060035f55f361105b565b63e94b0dd2811861105b5760243610341761153a576020600435670de0b6b3a763ffff811161153a576009015463f77c4791604052602060406004605c845afa610b2b573d5f5f3e3d5ffd5b60203d1061153a576040518060a01c61153a5760805260809050f361105b565b636fe4501f811861105b5760243610341761153a576020600435670de0b6b3a763ffff811161153a576009015463765337b6604052602060406004605c845afa610b97573d5f5f3e3d5ffd5b60203d1061153a576040518060a01c61153a5760805260809050f361105b565b6349b899848118610c1f5760243610341761153a576020600435670de0b6b3a763ffff811161153a5760090154632621db2f604052602060406004605c845afa610c03573d5f5f3e3d5ffd5b60203d1061153a576040518060a01c61153a5760805260809050f35b63b0539187811861105b5760243610341761153a576020671bc16d674ec8000e54635d95c65e604052600435670de0b6b3a763ffff811161153a5760090154606052602060406024605c845afa610c78573d5f5f3e3d5ffd5b60203d1061153a576040518060a01c61153a5760805260809050f361105b565b63762e7b92811861105b5760243610341761153a576020600435670de0b6b3a763ffff811161153a576009015463f77c4791604052602060406004605c845afa610ce4573d5f5f3e3d5ffd5b60203d1061153a576040518060a01c61153a57608052608090505163adfae4ce60a052602060a0600460bc845afa610d1e573d5f5f3e3d5ffd5b60203d1061153a5760a0518060a01c61153a5760e05260e09050f361105b565b63bcf75a8f8118610d9d5760243610341761153a576004358060a01c61153a57604052671bc16d674ec800096040516020525f5260405f2054700100000000000000000000000000000000810381811161153a57905060605260206060f35b63a74fcf90811861105b5760443610341761153a575f5460021461153a5760025f55600854331861153a576301e3da5f6004351061153a576449d482455d6024351161153a576004356024351061153a576004356006556024356007557f279f1fe0f91b15d983792d0305a146961875690054db0d81bec8d1582461fc656040600460403760406040a160035f550061105b565b6350c1163a8118610eaf5760243610341761153a576004358060a01c61153a57604052671bc16d674ec8000e54635d95c65e60805260405160a052602060806024609c845afa610e83573d5f5f3e3d5ffd5b60203d1061153a576080518060a01c61153a5760c05260c09050516060526060511561153a5760206060f35b636c15eadf811861105b5760c43610341761153a576004358060a01c61153a576040526024358060a01c61153a576060526044358060a01c61153a576080526064358060a01c61153a5760a0526084358060a01c61153a5760c05260a4358060a01c61153a5760e0525f5460021461153a5760025f55600854331861153a5760405115610f3d576040516002555b60605115610f4c576060516001555b60805115610f5b576080516003555b60a05115610f6a5760a0516004555b60c05115610f795760c0516005555b60e05115610f8f5760e051671bc16d674ec8000e555b7f91d63b24386eae580bbbe65f3f50fd736c41031f36d85641bc13e74ac0cb95bb60605161010052604051610120526080516101405260a0516101605260c0516101805260e0516101a05260c0610100a160035f550061105b565b63e9333fab811861105b5760243610341761153a576004358060a01c61153a576040525f5460021461153a5760025f55600854331861153a576040516008557f5a272403b402d892977df56625f4164ccaf70ca3863991c43ecfe76a6905b0a160405160605260206060a160035f55005b5f5ffd5b606051604051186110cf57600a6101c0527f53616d6520746f6b656e000000000000000000000000000000000000000000006101e0526101c0506101c051806101e001601f825f031636823750506308c379a06101805260206101a052601f19601f6101c051011660440161019cfd5b60206115885f395f51604051186110e75760016110f6565b60206115885f395f5160605118155b1561153a577f602d3d8160093d39f3363d3d373d3d3d363d73000000000000000000000000006101e05260035460601b6101f3527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006102075260366101e05ff0801561153a576101c0526006546101e05260075461020052610180511561118057610180516101e0525b6101a05115611192576101a051610200525b6301e3da5f6101e05110156111a7575f6111c8565b6449d482455d6102005111156111bd575f6111c8565b610200516101e05111155b61123157600b610220527f57726f6e672072617465730000000000000000000000000000000000000000006102405261022050610220518061024001601f825f031636823750506308c379a06101e052602061020052601f19601f6102205101166044016101fcfd5b60055460405161024052610240516102a0526101e05161026052610260516102c0526102005161028052610280516102e05260606003823b03596001821261153a5781600382863c8181018381856102a060045afa5050828201815ff0801561153a57905090509050905061022052604036610240376101c0516343687bba610280526001546102a0526002546102c0526040516102e052606051610300526080516103205260a051610340526101005161036052610220516103805260c0516103a05260e0516103c052604061028061014461029c5f855af1611317573d5f5f3e3d5ffd5b60403d1061153a57610280518060a01c61153a576103e0526102a0518060a01c61153a57610400526103e0905080516102405260208101516102605250671bc16d674ec8000a5461028052604051606051610280517f2a854a597908740dff5f0846840f167547ea0d7614c43bde3ea49be2e68c07ec6101c0516102a052610240516102c052610260516102e0526101005161030052610220516103205260a06102a0a46101c05161028051670de0b6b3a763ffff811161153a57600901556102605161028051670de0b6b3a763ffff811161153a57670de0b6b3a7640009015561028051700100000000000000000000000000000000810181811061153a579050671bc16d674ec800096101c0516020525f5260405f205560206101205101671bc16d674ec8000d610280516020525f5260405f205f82601f0160051c6003811161153a57801561147d57905b8060051b610120015181840155600101818118611465575b50505050610280516001810181811061153a579050671bc16d674ec8000a556040516102a05260206115885f395f51604051186114bc576060516102a0525b671bc16d674ec8000c6102a0516020525f5260405f2054610280526101c051671bc16d674ec8000b6102a0516020525f5260405f2061028051670de0b6b3a763ffff811161153a578101905055610280516001810181811061153a579050671bc16d674ec8000c6102a0516020525f5260405f20556101c051815250565b5f80fd05f8105b0c9806fd05d1105b0465009f105b105b105b105b00180e31105b0239003a0d3e06b0105b052a007f02ee04450bb7063e079500f3105b105b0b4b0adf005c0fea066507480113000000000000000000000000b102f7efa0d5de071a8d37b3548e1c7cb148caf3
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b102f7efa0d5de071a8d37b3548e1c7cb148caf300000000000000000000000059cffdc8cf8b9b71d91da6de480c957993020e8a0000000000000000000000007002b727ef8f5571cb5f9d70d13dbeeb4dfae9d1000000000000000000000000c1db00a8e5ef7bfa476395cdbcc98235477cde4e0000000000000000000000000cd5a1e9e19af1f1b910ac3c3452a16b2b37155b00000000000000000000000086d347ce5f1e6f7ef4da00fb7c8d31fbd16996f0000000000000000000000000ef672bd94913cb6f1d2812a6e18c1ffded8eff5c0000000000000000000000004bbdfed5696b3a8f6b3813506b5389959c5cdc57
-----Decoded View---------------
Arg [0] : stablecoin (address): 0xB102f7Efa0d5dE071A8D37B3548e1C7CB148Caf3
Arg [1] : amm (address): 0x59CfFdC8cf8b9b71D91Da6de480c957993020E8A
Arg [2] : controller (address): 0x7002B727Ef8F5571Cb5F9D70D13DBEEb4dFAe9d1
Arg [3] : vault (address): 0xc1DB00a8E5Ef7bfa476395cdbcc98235477cDE4E
Arg [4] : pool_price_oracle (address): 0x0cD5A1e9E19Af1f1b910Ac3C3452A16B2B37155b
Arg [5] : monetary_policy (address): 0x86D347cE5f1E6f7Ef4Da00FB7c8d31fBD16996F0
Arg [6] : gauge_factory (address): 0xeF672bD94913CB6f1d2812a6e18c1fFdEd8eFf5c
Arg [7] : admin (address): 0x4BbdFEd5696b3a8F6B3813506b5389959C5CDC57
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 000000000000000000000000b102f7efa0d5de071a8d37b3548e1c7cb148caf3
Arg [1] : 00000000000000000000000059cffdc8cf8b9b71d91da6de480c957993020e8a
Arg [2] : 0000000000000000000000007002b727ef8f5571cb5f9d70d13dbeeb4dfae9d1
Arg [3] : 000000000000000000000000c1db00a8e5ef7bfa476395cdbcc98235477cde4e
Arg [4] : 0000000000000000000000000cd5a1e9e19af1f1b910ac3c3452a16b2b37155b
Arg [5] : 00000000000000000000000086d347ce5f1e6f7ef4da00fb7c8d31fbd16996f0
Arg [6] : 000000000000000000000000ef672bd94913cb6f1d2812a6e18c1ffded8eff5c
Arg [7] : 0000000000000000000000004bbdfed5696b3a8f6b3813506b5389959c5cdc57
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in FRAX
0
Multichain Portfolio | 35 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.