ETH Price: $3,423.31 (-2.13%)
Gas: 5 Gwei

Contract

0xF18056Bbd320E96A48e3Fbf8bC061322531aac99
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Deploy_gauge192789572024-02-21 22:19:23147 days ago1708553963IN
0xF18056Bb...2531aac99
0 ETH0.0115568736.46920026
Deploy_pool192788862024-02-21 22:04:59147 days ago1708553099IN
0xF18056Bb...2531aac99
0 ETH0.0408770547.83079069
Deploy_pool192621962024-02-19 13:52:47149 days ago1708350767IN
0xF18056Bb...2531aac99
0 ETH0.0326976938.1265736
Deploy_gauge192241052024-02-14 5:23:59154 days ago1707888239IN
0xF18056Bb...2531aac99
0 ETH0.0056731316.73199819
Deploy_pool192240232024-02-14 5:07:23154 days ago1707887243IN
0xF18056Bb...2531aac99
0 ETH0.0149444717.12494143
Deploy_pool191929052024-02-09 20:19:35159 days ago1707509975IN
0xF18056Bb...2531aac99
0 ETH0.0439473650.36549233
Deploy_gauge191630022024-02-05 15:37:11163 days ago1707147431IN
0xF18056Bb...2531aac99
0 ETH0.0088163526.00150356
Deploy_pool191629962024-02-05 15:35:59163 days ago1707147359IN
0xF18056Bb...2531aac99
0 ETH0.0195632823.00212947
Deploy_gauge191626532024-02-05 14:25:59163 days ago1707143159IN
0xF18056Bb...2531aac99
0 ETH0.0139782441.22512931
Deploy_pool191626322024-02-05 14:21:47163 days ago1707142907IN
0xF18056Bb...2531aac99
0 ETH0.0373136543.26215435
Deploy_pool191625902024-02-05 14:13:23163 days ago1707142403IN
0xF18056Bb...2531aac99
0 ETH0.0354361841.66791269
Deploy_gauge191490362024-02-03 16:32:11165 days ago1706977931IN
0xF18056Bb...2531aac99
0 ETH0.0092994927.42638927
Deploy_pool191469712024-02-03 9:34:35165 days ago1706952875IN
0xF18056Bb...2531aac99
0 ETH0.0129179215.15503621
Deploy_pool191432802024-02-02 21:06:11166 days ago1706907971IN
0xF18056Bb...2531aac99
0 ETH0.0185973321.87417874
Deploy_gauge191288322024-01-31 20:26:23168 days ago1706732783IN
0xF18056Bb...2531aac99
0 ETH0.008601725.36843788
Deploy_pool191288282024-01-31 20:25:35168 days ago1706732735IN
0xF18056Bb...2531aac99
0 ETH0.0234832227.45529382
Deploy_pool191269992024-01-31 14:16:11168 days ago1706710571IN
0xF18056Bb...2531aac99
0 ETH0.0267476731.45119734
Deploy_pool190126672024-01-15 13:46:23184 days ago1705326383IN
0xF18056Bb...2531aac99
0 ETH0.0193438322.68938622
Deploy_gauge189407412024-01-05 11:21:47194 days ago1704453707IN
0xF18056Bb...2531aac99
0 ETH0.0055696717.57582768
Deploy_pool189407392024-01-05 11:21:23194 days ago1704453683IN
0xF18056Bb...2531aac99
0 ETH0.0155813617.67137174
Deploy_gauge188881652023-12-29 2:07:59202 days ago1703815679IN
0xF18056Bb...2531aac99
0 ETH0.006013717.73583911
Deploy_pool188881432023-12-29 2:03:23202 days ago1703815403IN
0xF18056Bb...2531aac99
0 ETH0.0164125818.80951775
Deploy_gauge188820452023-12-28 5:31:35202 days ago1703741495IN
0xF18056Bb...2531aac99
0 ETH0.00901928.46063589
Deploy_pool188820402023-12-28 5:30:35202 days ago1703741435IN
0xF18056Bb...2531aac99
0 ETH0.0258853429.60009292
Deploy_pool188383832023-12-22 2:21:59209 days ago1703211719IN
0xF18056Bb...2531aac99
0 ETH0.0217864825.41341072
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
202321362024-07-04 9:04:3513 days ago1720083875
0xF18056Bb...2531aac99
 Contract Creation0 ETH
202321362024-07-04 9:04:3513 days ago1720083875
0xF18056Bb...2531aac99
 Contract Creation0 ETH
201729802024-06-26 2:49:2322 days ago1719370163
0xF18056Bb...2531aac99
 Contract Creation0 ETH
201729802024-06-26 2:49:2322 days ago1719370163
0xF18056Bb...2531aac99
 Contract Creation0 ETH
201612952024-06-24 11:38:5923 days ago1719229139
0xF18056Bb...2531aac99
 Contract Creation0 ETH
201612952024-06-24 11:38:5923 days ago1719229139
0xF18056Bb...2531aac99
 Contract Creation0 ETH
201278572024-06-19 19:24:5928 days ago1718825099
0xF18056Bb...2531aac99
 Contract Creation0 ETH
201278572024-06-19 19:24:5928 days ago1718825099
0xF18056Bb...2531aac99
 Contract Creation0 ETH
201259622024-06-19 13:03:4728 days ago1718802227
0xF18056Bb...2531aac99
 Contract Creation0 ETH
201259622024-06-19 13:03:4728 days ago1718802227
0xF18056Bb...2531aac99
 Contract Creation0 ETH
201182382024-06-18 11:06:5929 days ago1718708819
0xF18056Bb...2531aac99
 Contract Creation0 ETH
201182382024-06-18 11:06:5929 days ago1718708819
0xF18056Bb...2531aac99
 Contract Creation0 ETH
201128702024-06-17 17:02:3530 days ago1718643755
0xF18056Bb...2531aac99
 Contract Creation0 ETH
201128702024-06-17 17:02:3530 days ago1718643755
0xF18056Bb...2531aac99
 Contract Creation0 ETH
200767792024-06-12 15:55:5935 days ago1718207759
0xF18056Bb...2531aac99
 Contract Creation0 ETH
200767792024-06-12 15:55:5935 days ago1718207759
0xF18056Bb...2531aac99
 Contract Creation0 ETH
200312442024-06-06 7:17:5941 days ago1717658279
0xF18056Bb...2531aac99
 Contract Creation0 ETH
200312442024-06-06 7:17:5941 days ago1717658279
0xF18056Bb...2531aac99
 Contract Creation0 ETH
199696732024-05-28 16:51:2350 days ago1716915083
0xF18056Bb...2531aac99
 Contract Creation0 ETH
199696732024-05-28 16:51:2350 days ago1716915083
0xF18056Bb...2531aac99
 Contract Creation0 ETH
199611202024-05-27 12:09:5951 days ago1716811799
0xF18056Bb...2531aac99
 Contract Creation0 ETH
199611202024-05-27 12:09:5951 days ago1716811799
0xF18056Bb...2531aac99
 Contract Creation0 ETH
199280842024-05-22 21:24:1156 days ago1716413051
0xF18056Bb...2531aac99
 Contract Creation0 ETH
199280842024-05-22 21:24:1156 days ago1716413051
0xF18056Bb...2531aac99
 Contract Creation0 ETH
199190192024-05-21 14:57:1157 days ago1716303431
0xF18056Bb...2531aac99
 Contract Creation0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vyper_contract

Compiler Version
vyper:0.3.1

Optimization Enabled:
N/A

Other Settings:
None license
# @version 0.3.1
"""
@title Curve Factory
@license MIT
@author Curve.Fi
@notice Permissionless pool deployer and registry
"""


interface CryptoPool:
    def balances(i: uint256) -> uint256: view
    def initialize(
        A: uint256,
        gamma: uint256,
        mid_fee: uint256,
        out_fee: uint256,
        allowed_extra_profit: uint256,
        fee_gamma: uint256,
        adjustment_step: uint256,
        admin_fee: uint256,
        ma_half_time: uint256,
        initial_price: uint256,
        _token: address,
        _coins: address[2],
        _precisions: uint256
    ): nonpayable

interface ERC20:
    def decimals() -> uint256: view

interface LiquidityGauge:
    def initialize(_lp_token: address): nonpayable

interface Token:
    def initialize(_name: String[64], _symbol: String[32], _pool: address): nonpayable


event CryptoPoolDeployed:
    token: address
    coins: address[2]
    A: uint256
    gamma: uint256
    mid_fee: uint256
    out_fee: uint256
    allowed_extra_profit: uint256
    fee_gamma: uint256
    adjustment_step: uint256
    admin_fee: uint256
    ma_half_time: uint256
    initial_price: uint256
    deployer: address

event LiquidityGaugeDeployed:
    pool: address
    token: address
    gauge: address

event UpdateFeeReceiver:
    _old_fee_receiver: address
    _new_fee_receiver: address

event UpdatePoolImplementation:
    _old_pool_implementation: address
    _new_pool_implementation: address

event UpdateTokenImplementation:
    _old_token_implementation: address
    _new_token_implementation: address

event UpdateGaugeImplementation:
    _old_gauge_implementation: address
    _new_gauge_implementation: address

event TransferOwnership:
    _old_owner: address
    _new_owner: address


struct PoolArray:
    token: address
    liquidity_gauge: address
    coins: address[2]
    decimals: uint256


N_COINS: constant(int128) = 2
A_MULTIPLIER: constant(uint256) = 10000

# Limits
MAX_ADMIN_FEE: constant(uint256) = 10 * 10 ** 9
MIN_FEE: constant(uint256) = 5 * 10 ** 5  # 0.5 bps
MAX_FEE: constant(uint256) = 10 * 10 ** 9

MIN_GAMMA: constant(uint256) = 10 ** 10
MAX_GAMMA: constant(uint256) = 2 * 10 ** 16

MIN_A: constant(uint256) = N_COINS ** N_COINS * A_MULTIPLIER / 10
MAX_A: constant(uint256) = N_COINS ** N_COINS * A_MULTIPLIER * 100000


WETH: immutable(address)


admin: public(address)
future_admin: public(address)

# fee receiver for plain pools
fee_receiver: public(address)

pool_implementation: public(address)
token_implementation: public(address)
gauge_implementation: public(address)

# mapping of coins -> pools for trading
# a mapping key is generated for each pair of addresses via
# `bitwise_xor(convert(a, uint256), convert(b, uint256))`
markets: HashMap[uint256, address[4294967296]]
market_counts: HashMap[uint256, uint256]

pool_count: public(uint256)              # actual length of pool_list
pool_data: HashMap[address, PoolArray]
pool_list: public(address[4294967296])   # master list of pools


@external
def __init__(
    _fee_receiver: address,
    _pool_implementation: address,
    _token_implementation: address,
    _gauge_implementation: address,
    _weth: address
):
    self.fee_receiver = _fee_receiver
    self.pool_implementation = _pool_implementation
    self.token_implementation = _token_implementation
    self.gauge_implementation = _gauge_implementation

    self.admin = msg.sender
    WETH = _weth

    log UpdateFeeReceiver(ZERO_ADDRESS, _fee_receiver)
    log UpdatePoolImplementation(ZERO_ADDRESS, _pool_implementation)
    log UpdateTokenImplementation(ZERO_ADDRESS, _token_implementation)
    log UpdateGaugeImplementation(ZERO_ADDRESS, _gauge_implementation)
    log TransferOwnership(ZERO_ADDRESS, msg.sender)


# <--- Pool Deployers --->

@external
def deploy_pool(
    _name: String[32],
    _symbol: String[10],
    _coins: address[2],
    A: uint256,
    gamma: uint256,
    mid_fee: uint256,
    out_fee: uint256,
    allowed_extra_profit: uint256,
    fee_gamma: uint256,
    adjustment_step: uint256,
    admin_fee: uint256,
    ma_half_time: uint256,
    initial_price: uint256
) -> address:
    """
    @notice Deploy a new pool
    @param _name Name of the new plain pool
    @param _symbol Symbol for the new plain pool - will be concatenated with factory symbol
    Other parameters need some description
    @return Address of the deployed pool
    """
    # Validate parameters
    assert A > MIN_A-1
    assert A < MAX_A+1
    assert gamma > MIN_GAMMA-1
    assert gamma < MAX_GAMMA+1
    assert mid_fee > MIN_FEE-1
    assert mid_fee < MAX_FEE-1
    assert out_fee >= mid_fee
    assert out_fee < MAX_FEE-1
    assert admin_fee < 10**18+1
    assert allowed_extra_profit < 10**16+1
    assert fee_gamma < 10**18+1
    assert fee_gamma > 0
    assert adjustment_step < 10**18+1
    assert adjustment_step > 0
    assert ma_half_time < 7 * 86400
    assert ma_half_time > 0
    assert initial_price > 10**6
    assert initial_price < 10**30
    assert _coins[0] != _coins[1], "Duplicate coins"

    decimals: uint256[2] = empty(uint256[2])
    for i in range(2):
        d: uint256 = ERC20(_coins[i]).decimals()
        assert d < 19, "Max 18 decimals for coins"
        decimals[i] = d
    precisions: uint256 = (18 - decimals[0]) + shift(18 - decimals[1], 8)


    name: String[64] = concat("Curve.fi Factory Crypto Pool: ", _name)
    symbol: String[32] = concat(_symbol, "-f")

    token: address = create_forwarder_to(self.token_implementation)
    pool: address = create_forwarder_to(self.pool_implementation)

    Token(token).initialize(name, symbol, pool)
    CryptoPool(pool).initialize(
        A, gamma, mid_fee, out_fee, allowed_extra_profit, fee_gamma,
        adjustment_step, admin_fee, ma_half_time, initial_price,
        token, _coins, precisions)

    length: uint256 = self.pool_count
    self.pool_list[length] = pool
    self.pool_count = length + 1
    self.pool_data[pool].token = token
    self.pool_data[pool].decimals = shift(decimals[0], 8) + decimals[1]
    self.pool_data[pool].coins = _coins

    key: uint256 = bitwise_xor(convert(_coins[0], uint256), convert(_coins[1], uint256))
    length = self.market_counts[key]
    self.markets[key][length] = pool
    self.market_counts[key] = length + 1

    log CryptoPoolDeployed(
        token, _coins,
        A, gamma, mid_fee, out_fee, allowed_extra_profit, fee_gamma,
        adjustment_step, admin_fee, ma_half_time, initial_price,
        msg.sender)
    return pool


@external
def deploy_gauge(_pool: address) -> address:
    """
    @notice Deploy a liquidity gauge for a factory pool
    @param _pool Factory pool address to deploy a gauge for
    @return Address of the deployed gauge
    """
    assert self.pool_data[_pool].coins[0] != ZERO_ADDRESS, "Unknown pool"
    assert self.pool_data[_pool].liquidity_gauge == ZERO_ADDRESS, "Gauge already deployed"

    gauge: address = create_forwarder_to(self.gauge_implementation)
    token: address = self.pool_data[_pool].token
    LiquidityGauge(gauge).initialize(token)
    self.pool_data[_pool].liquidity_gauge = gauge

    log LiquidityGaugeDeployed(_pool, token, gauge)
    return gauge


# <--- Admin / Guarded Functionality --->


@external
def set_fee_receiver(_fee_receiver: address):
    """
    @notice Set fee receiver
    @param _fee_receiver Address that fees are sent to
    """
    assert msg.sender == self.admin  # dev: admin only

    log UpdateFeeReceiver(self.fee_receiver, _fee_receiver)
    self.fee_receiver = _fee_receiver


@external
def set_pool_implementation(_pool_implementation: address):
    """
    @notice Set pool implementation
    @dev Set to ZERO_ADDRESS to prevent deployment of new pools
    @param _pool_implementation Address of the new pool implementation
    """
    assert msg.sender == self.admin  # dev: admin only

    log UpdatePoolImplementation(self.pool_implementation, _pool_implementation)
    self.pool_implementation = _pool_implementation


@external
def set_token_implementation(_token_implementation: address):
    """
    @notice Set token implementation
    @dev Set to ZERO_ADDRESS to prevent deployment of new pools
    @param _token_implementation Address of the new token implementation
    """
    assert msg.sender == self.admin  # dev: admin only

    log UpdateTokenImplementation(self.token_implementation, _token_implementation)
    self.token_implementation = _token_implementation


@external
def set_gauge_implementation(_gauge_implementation: address):
    """
    @notice Set gauge implementation
    @dev Set to ZERO_ADDRESS to prevent deployment of new gauges
    @param _gauge_implementation Address of the new token implementation
    """
    assert msg.sender == self.admin  # dev: admin-only function

    log UpdateGaugeImplementation(self.gauge_implementation, _gauge_implementation)
    self.gauge_implementation = _gauge_implementation


@external
def commit_transfer_ownership(_addr: address):
    """
    @notice Transfer ownership of this contract to `addr`
    @param _addr Address of the new owner
    """
    assert msg.sender == self.admin  # dev: admin only

    self.future_admin = _addr


@external
def accept_transfer_ownership():
    """
    @notice Accept a pending ownership transfer
    @dev Only callable by the new owner
    """
    assert msg.sender == self.future_admin  # dev: future admin only

    log TransferOwnership(self.admin, msg.sender)
    self.admin = msg.sender


# <--- Factory Getters --->


@view
@external
def find_pool_for_coins(_from: address, _to: address, i: uint256 = 0) -> address:
    """
    @notice Find an available pool for exchanging two coins
    @param _from Address of coin to be sent
    @param _to Address of coin to be received
    @param i Index value. When multiple pools are available
            this value is used to return the n'th address.
    @return Pool address
    """
    key: uint256 = bitwise_xor(convert(_from, uint256), convert(_to, uint256))
    return self.markets[key][i]


# <--- Pool Getters --->


@view
@external
def get_coins(_pool: address) -> address[2]:
    """
    @notice Get the coins within a pool
    @param _pool Pool address
    @return List of coin addresses
    """
    return self.pool_data[_pool].coins


@view
@external
def get_decimals(_pool: address) -> uint256[2]:
    """
    @notice Get decimal places for each coin within a pool
    @param _pool Pool address
    @return uint256 list of decimals
    """
    decimals: uint256 = self.pool_data[_pool].decimals
    return [shift(decimals, -8), decimals % 256]


@view
@external
def get_balances(_pool: address) -> uint256[2]:
    """
    @notice Get balances for each coin within a pool
    @dev For pools using lending, these are the wrapped coin balances
    @param _pool Pool address
    @return uint256 list of balances
    """
    return [CryptoPool(_pool).balances(0), CryptoPool(_pool).balances(1)]


@view
@external
def get_coin_indices(
    _pool: address,
    _from: address,
    _to: address
) -> (uint256, uint256):
    """
    @notice Convert coin addresses to indices for use with pool methods
    @param _pool Pool address
    @param _from Coin address to be used as `i` within a pool
    @param _to Coin address to be used as `j` within a pool
    @return uint256 `i`, uint256 `j`
    """
    coins: address[2] = self.pool_data[_pool].coins

    if _from == coins[0] and _to == coins[1]:
        return 0, 1
    elif _from == coins[1] and _to == coins[0]:
        return 1, 0
    else:
        raise "Coins not found"


@view
@external
def get_gauge(_pool: address) -> address:
    """
    @notice Get the address of the liquidity gauge contract for a factory pool
    @dev Returns `ZERO_ADDRESS` if a gauge has not been deployed
    @param _pool Pool address
    @return Implementation contract address
    """
    return self.pool_data[_pool].liquidity_gauge


@view
@external
def get_eth_index(_pool: address) -> uint256:
    """
    @notice Get the index of WETH for a pool
    @dev Returns MAX_UINT256 if WETH is not a coin in the pool
    """
    for i in range(2):
        if self.pool_data[_pool].coins[i] == WETH:
            return i
    return MAX_UINT256


@view
@external
def get_token(_pool: address) -> address:
    """
    @notice Get the address of the LP token of a pool
    """
    return self.pool_data[_pool].token

Contract Security Audit

Contract ABI

[{"name":"CryptoPoolDeployed","inputs":[{"name":"token","type":"address","indexed":false},{"name":"coins","type":"address[2]","indexed":false},{"name":"A","type":"uint256","indexed":false},{"name":"gamma","type":"uint256","indexed":false},{"name":"mid_fee","type":"uint256","indexed":false},{"name":"out_fee","type":"uint256","indexed":false},{"name":"allowed_extra_profit","type":"uint256","indexed":false},{"name":"fee_gamma","type":"uint256","indexed":false},{"name":"adjustment_step","type":"uint256","indexed":false},{"name":"admin_fee","type":"uint256","indexed":false},{"name":"ma_half_time","type":"uint256","indexed":false},{"name":"initial_price","type":"uint256","indexed":false},{"name":"deployer","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"LiquidityGaugeDeployed","inputs":[{"name":"pool","type":"address","indexed":false},{"name":"token","type":"address","indexed":false},{"name":"gauge","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateFeeReceiver","inputs":[{"name":"_old_fee_receiver","type":"address","indexed":false},{"name":"_new_fee_receiver","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdatePoolImplementation","inputs":[{"name":"_old_pool_implementation","type":"address","indexed":false},{"name":"_new_pool_implementation","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateTokenImplementation","inputs":[{"name":"_old_token_implementation","type":"address","indexed":false},{"name":"_new_token_implementation","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateGaugeImplementation","inputs":[{"name":"_old_gauge_implementation","type":"address","indexed":false},{"name":"_new_gauge_implementation","type":"address","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":"_fee_receiver","type":"address"},{"name":"_pool_implementation","type":"address"},{"name":"_token_implementation","type":"address"},{"name":"_gauge_implementation","type":"address"},{"name":"_weth","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"deploy_pool","inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_coins","type":"address[2]"},{"name":"A","type":"uint256"},{"name":"gamma","type":"uint256"},{"name":"mid_fee","type":"uint256"},{"name":"out_fee","type":"uint256"},{"name":"allowed_extra_profit","type":"uint256"},{"name":"fee_gamma","type":"uint256"},{"name":"adjustment_step","type":"uint256"},{"name":"admin_fee","type":"uint256"},{"name":"ma_half_time","type":"uint256"},{"name":"initial_price","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"deploy_gauge","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"set_fee_receiver","inputs":[{"name":"_fee_receiver","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_pool_implementation","inputs":[{"name":"_pool_implementation","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_token_implementation","inputs":[{"name":"_token_implementation","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_gauge_implementation","inputs":[{"name":"_gauge_implementation","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_ownership","inputs":[{"name":"_addr","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_ownership","inputs":[],"outputs":[]},{"stateMutability":"view","type":"function","name":"find_pool_for_coins","inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"find_pool_for_coins","inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"i","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"get_coins","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"address[2]"}]},{"stateMutability":"view","type":"function","name":"get_decimals","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256[2]"}]},{"stateMutability":"view","type":"function","name":"get_balances","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256[2]"}]},{"stateMutability":"view","type":"function","name":"get_coin_indices","inputs":[{"name":"_pool","type":"address"},{"name":"_from","type":"address"},{"name":"_to","type":"address"}],"outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_gauge","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"get_eth_index","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_token","inputs":[{"name":"_pool","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"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":"fee_receiver","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"pool_implementation","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"token_implementation","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"gauge_implementation","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"pool_count","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"pool_list","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}]}]

602061130e6080396080518060a01c6113095760e0526020602061130e016080396080518060a01c61130957610100526020604061130e016080396080518060a01c61130957610120526020606061130e016080396080518060a01c61130957610140526020608061130e016080396080518060a01c611309576101605260e0516002556101005160035561012051600455610140516005553360005561016051610180527f2861448678f0be67f11bfb5481b3e3b4cfeb3acc6126ad60a05f95bfc653066660006101a05260e0516101c05260406101a0a17f0617fd31aa5ab95ec80eefc1eb61a2c477aa419d1d761b4e46f5f077e47852aa60006101a052610100516101c05260406101a0a17f1cc4f8e20b0cd3e5109eb156cadcfd3a5496ac0794c6085ca02afd7d710dd56660006101a052610120516101c05260406101a0a17f1fd705f9c77053962a503f2f2f57f0862b4c3af687c25615c13817a86946c35960006101a052610140516101c05260406101a0a17f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60006101a052336101c05260406101a0a16112e156600436101561000d57611128565b60046000601c376000513461112e5763c955fa04811861080057600435600401602081351161112e57808035602001808260e037505050602435600401600a81351161112e578080356020018082610120375050506044358060a01c61112e57610160526064358060a01c61112e5761018052610f9f608435111561112e5763ee6b2801608435101561112e576402540be3ff60a435111561112e5766470de4df82000160a435101561112e576207a11f60c435111561112e576402540be3ff60c435101561112e5760c43560e4351061112e576402540be3ff60e435101561112e57670de0b6b3a764000161016435101561112e57662386f26fc1000161010435101561112e57670de0b6b3a764000161012435101561112e57600061012435111561112e57670de0b6b3a764000161014435101561112e57600061014435111561112e5762093a8061018435101561112e57600061018435111561112e57620f42406101a435111561112e576c0c9f2c9cd04674edea400000006101a435101561112e576101805161016051141561021857600f6101a0527f4475706c696361746520636f696e7300000000000000000000000000000000006101c0526101a0506101a051806101c001818260206001820306601f82010390500336823750506308c379a0610160526020610180526101a05160206001820306601f820103905060440161017cfd5b6040366101a0376101e060006002818352015b63313ce567610220526020610220600461023c6101606101e051600281101561112e5760200201515afa610264573d600060003e3d6000fd5b601f3d111561112e576102205161020052601361020051106102f7576019610220527f4d617820313820646563696d616c7320666f7220636f696e73000000000000006102405261022050610220518061024001818260206001820306601f82010390500336823750506308c379a06101e0526020610200526102205160206001820306601f82010390506044016101fcfd5b610200516101a06101e051600281101561112e576020020152815160010180835281141561022b57505060126101a05180821061112e578082039050905060126101c05180821061112e578082039050905060081b818183011061112e57808201905090506101e0526000601e610260527f43757276652e666920466163746f72792043727970746f20506f6f6c3a20000061028052610260601e806020846102a00101826020850160045afa50508051820191505060e06020806020846102a00101826020850160045afa505080518201915050806102a0526102a09050805160200180610200828460045afa905050506000610120600a806020846102e00101826020850160045afa50508051820191505060026102a0527f2d660000000000000000000000000000000000000000000000000000000000006102c0526102a06002806020846102e00101826020850160045afa505080518201915050806102e0526102e09050805160200180610260828460045afa905050507f602d3d8160093d39f3363d3d373d3d3d363d73000000000000000000000000006102c05260045460601b6102d3527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006102e75260366102c06000f06102a0527f602d3d8160093d39f3363d3d373d3d3d363d73000000000000000000000000006102e05260035460601b6102f3527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006103075260366102e06000f06102c05263077f224a6102e0526103008060608082528083018061020080516020018083828460045afa905050508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f820103905090509050810190506020820191508082528083018061026080516020018083828460045afa905050508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f820103905090509050810190506020820191506102c05182525050506102a0513b1561112e57600060006101046102fc60006102a0515af161062a573d600060003e3d6000fd5b63a39e95c56102e0526101406084610300376102a05161044052610160516104605261018051610480526101e0516104a0526102c0513b1561112e57600060006101c46102fc60006102c0515af1610687573d600060003e3d6000fd5b6008546102e0526102c05160016102e05164010000000081101561112e5702600a01556102e0516001818183011061112e57808201905090506008556102a05160096102c05160a0526080526040608020556101a05160081b6101c051818183011061112e5780820190509050600460096102c05160a05260805260406080200155600260096102c05160a052608052604060802001610160518155610180516001820155506101805161016051186103005260076103005160a0526080526040608020546102e0526102c05160016102e05164010000000081101561112e570260066103005160a052608052604060802001556102e0516001818183011061112e578082019050905060076103005160a0526080526040608020557f0394cb40d7dbe28dad1d4ee890bdd35bbb0d89e17924a80a542535e83d54ba146102a0516103205261016051610340526101805161036052610140608461038037336104c0526101c0610320a16102c051610320526020610320f35b6396bebb348118610a4b576004358060a01c61112e5760e05260006002600960e05160a0526080526040608020015414156108a957600c610100527f556e6b6e6f776e20706f6f6c00000000000000000000000000000000000000006101205261010050610100518061012001818260206001820306601f82010390500336823750506308c379a060c052602060e0526101005160206001820306601f820103905060440160dcfd5b6001600960e05160a0526080526040608020015415610936576016610100527f476175676520616c7265616479206465706c6f796564000000000000000000006101205261010050610100518061012001818260206001820306601f82010390500336823750506308c379a060c052602060e0526101005160206001820306601f820103905060440160dcfd5b7f602d3d8160093d39f3363d3d373d3d3d363d73000000000000000000000000006101205260055460601b610133527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006101475260366101206000f061010052600960e05160a0526080526040608020546101205263c4d66de8610140526101205161016052610100513b1561112e5760006000602461015c6000610100515af16109e6573d600060003e3d6000fd5b610100516001600960e05160a052608052604060802001557f1d6247eae69b5feb96b30be78552f35de45f61fdb6d6d7e1b08aae159b6226af60e05161014052610120516101605261010051610180526060610140a161010051610140526020610140f35b63e41ab7718118610aaa576004358060a01c61112e5760e052600054331861112e577f2861448678f0be67f11bfb5481b3e3b4cfeb3acc6126ad60a05f95bfc65306666002546101005260e051610120526040610100a160e051600255005b639ed796d08118610b09576004358060a01c61112e5760e052600054331861112e577f0617fd31aa5ab95ec80eefc1eb61a2c477aa419d1d761b4e46f5f077e47852aa6003546101005260e051610120526040610100a160e051600355005b63653023c28118610b68576004358060a01c61112e5760e052600054331861112e577f1cc4f8e20b0cd3e5109eb156cadcfd3a5496ac0794c6085ca02afd7d710dd5666004546101005260e051610120526040610100a160e051600455005b638f03182c8118610bc7576004358060a01c61112e5760e052600054331861112e577f1fd705f9c77053962a503f2f2f57f0862b4c3af687c25615c13817a86946c3596005546101005260e051610120526040610100a160e051600555005b636b441a408118610bf1576004358060a01c61112e5760e052600054331861112e5760e051600155005b63e5ea47b88118610c3c57600154331861112e577f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60005460e0523361010052604060e0a133600055005b63a87df06c8118610c5257600061012052610c65565b636982eb0b8118610cc057604435610120525b6004358060a01c61112e5760e0526024358060a01c61112e57610100526101005160e051186101405260016101205164010000000081101561112e570260066101405160a05260805260406080200154610160526020610160f35b639ac90d3d8118610d03576004358060a01c61112e5760e0526002600960e05160a052608052604060802001805461010052600181015461012052506040610100f35b6352b515558118610d58576004358060a01c61112e5760e0526004600960e05160a05260805260406080200154610100526101005160081c610120526101005161010080820690509050610140526040610120f35b6392e3cc2d8118610df4576004358060a01c61112e5760e052634903b0d1610100526000610120526020610100602461011c60e0515afa610d9e573d600060003e3d6000fd5b601f3d111561112e576101005161018052634903b0d1610140526001610160526020610140602461015c60e0515afa610ddc573d600060003e3d6000fd5b601f3d111561112e57610140516101a0526040610180f35b63eb85226d8118610f3f576004358060a01c61112e5760e0526024358060a01c61112e57610100526044358060a01c61112e57610120526002600960e05160a05260805260406080200180546101405260018101546101605250610140516101005118610e6957610160516101205114610e6c565b60005b610f2757610160516101005118610e8b57610140516101205114610e8e565b60005b610f0d57600f610180527f436f696e73206e6f7420666f756e6400000000000000000000000000000000006101a0526101805061018051806101a001818260206001820306601f82010390500336823750506308c379a0610140526020610160526101805160206001820306601f820103905060440161015cfd610f3d565b60016101805260006101a0526040610180610f3d56610f3d565b60006101805260016101a0526040610180610f3d565bf35b63daf297b98118610f77576004358060a01c61112e5760e0526001600960e05160a05260805260406080200154610100526020610100f35b63ccb156058118611025576004358060a01c61112e5760e05261010060006002818352015b602060203803608039608051600161010051600281101561112e57026002600960e05160a052608052604060802001015418610fe75750505061010051610120526020610120611023565b8151600101808352811415610f9c5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101005260206101005bf35b63977d9122811861105a576004358060a01c61112e5760e052600960e05160a052608052604060802054610100526020610100f35b63f851a44081186110715760005460e052602060e0f35b6317f7182a81186110885760015460e052602060e0f35b63cab4d3db811861109f5760025460e052602060e0f35b632489a2c381186110b65760035460e052602060e0f35b6335214d8181186110cd5760045460e052602060e0f35b638df2420781186110e45760055460e052602060e0f35b63956aae3a81186110fb5760085460e052602060e0f35b633a1d5d8e811861112657600160043564010000000081101561112e5702600a015460e052602060e0f35b505b60006000fd5b600080fd5b6101ae6112e1036101ae6101a0396101ae6112e10361018051816101a00152806020016101a0f35b600080fd000000000000000000000000ecb456ea5365865ebab8a2661b0c503410e9b347000000000000000000000000a85461afc2deec01bda23b5cd267d51f765fba10000000000000000000000000c08550a4cc5333f40e593ecc4c4724808085d304000000000000000000000000dc892358d55d5ae1ec47a531130d62151eba36e5000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

Deployed Bytecode

0x600436101561000d57611128565b60046000601c376000513461112e5763c955fa04811861080057600435600401602081351161112e57808035602001808260e037505050602435600401600a81351161112e578080356020018082610120375050506044358060a01c61112e57610160526064358060a01c61112e5761018052610f9f608435111561112e5763ee6b2801608435101561112e576402540be3ff60a435111561112e5766470de4df82000160a435101561112e576207a11f60c435111561112e576402540be3ff60c435101561112e5760c43560e4351061112e576402540be3ff60e435101561112e57670de0b6b3a764000161016435101561112e57662386f26fc1000161010435101561112e57670de0b6b3a764000161012435101561112e57600061012435111561112e57670de0b6b3a764000161014435101561112e57600061014435111561112e5762093a8061018435101561112e57600061018435111561112e57620f42406101a435111561112e576c0c9f2c9cd04674edea400000006101a435101561112e576101805161016051141561021857600f6101a0527f4475706c696361746520636f696e7300000000000000000000000000000000006101c0526101a0506101a051806101c001818260206001820306601f82010390500336823750506308c379a0610160526020610180526101a05160206001820306601f820103905060440161017cfd5b6040366101a0376101e060006002818352015b63313ce567610220526020610220600461023c6101606101e051600281101561112e5760200201515afa610264573d600060003e3d6000fd5b601f3d111561112e576102205161020052601361020051106102f7576019610220527f4d617820313820646563696d616c7320666f7220636f696e73000000000000006102405261022050610220518061024001818260206001820306601f82010390500336823750506308c379a06101e0526020610200526102205160206001820306601f82010390506044016101fcfd5b610200516101a06101e051600281101561112e576020020152815160010180835281141561022b57505060126101a05180821061112e578082039050905060126101c05180821061112e578082039050905060081b818183011061112e57808201905090506101e0526000601e610260527f43757276652e666920466163746f72792043727970746f20506f6f6c3a20000061028052610260601e806020846102a00101826020850160045afa50508051820191505060e06020806020846102a00101826020850160045afa505080518201915050806102a0526102a09050805160200180610200828460045afa905050506000610120600a806020846102e00101826020850160045afa50508051820191505060026102a0527f2d660000000000000000000000000000000000000000000000000000000000006102c0526102a06002806020846102e00101826020850160045afa505080518201915050806102e0526102e09050805160200180610260828460045afa905050507f602d3d8160093d39f3363d3d373d3d3d363d73000000000000000000000000006102c05260045460601b6102d3527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006102e75260366102c06000f06102a0527f602d3d8160093d39f3363d3d373d3d3d363d73000000000000000000000000006102e05260035460601b6102f3527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006103075260366102e06000f06102c05263077f224a6102e0526103008060608082528083018061020080516020018083828460045afa905050508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f820103905090509050810190506020820191508082528083018061026080516020018083828460045afa905050508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f820103905090509050810190506020820191506102c05182525050506102a0513b1561112e57600060006101046102fc60006102a0515af161062a573d600060003e3d6000fd5b63a39e95c56102e0526101406084610300376102a05161044052610160516104605261018051610480526101e0516104a0526102c0513b1561112e57600060006101c46102fc60006102c0515af1610687573d600060003e3d6000fd5b6008546102e0526102c05160016102e05164010000000081101561112e5702600a01556102e0516001818183011061112e57808201905090506008556102a05160096102c05160a0526080526040608020556101a05160081b6101c051818183011061112e5780820190509050600460096102c05160a05260805260406080200155600260096102c05160a052608052604060802001610160518155610180516001820155506101805161016051186103005260076103005160a0526080526040608020546102e0526102c05160016102e05164010000000081101561112e570260066103005160a052608052604060802001556102e0516001818183011061112e578082019050905060076103005160a0526080526040608020557f0394cb40d7dbe28dad1d4ee890bdd35bbb0d89e17924a80a542535e83d54ba146102a0516103205261016051610340526101805161036052610140608461038037336104c0526101c0610320a16102c051610320526020610320f35b6396bebb348118610a4b576004358060a01c61112e5760e05260006002600960e05160a0526080526040608020015414156108a957600c610100527f556e6b6e6f776e20706f6f6c00000000000000000000000000000000000000006101205261010050610100518061012001818260206001820306601f82010390500336823750506308c379a060c052602060e0526101005160206001820306601f820103905060440160dcfd5b6001600960e05160a0526080526040608020015415610936576016610100527f476175676520616c7265616479206465706c6f796564000000000000000000006101205261010050610100518061012001818260206001820306601f82010390500336823750506308c379a060c052602060e0526101005160206001820306601f820103905060440160dcfd5b7f602d3d8160093d39f3363d3d373d3d3d363d73000000000000000000000000006101205260055460601b610133527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006101475260366101206000f061010052600960e05160a0526080526040608020546101205263c4d66de8610140526101205161016052610100513b1561112e5760006000602461015c6000610100515af16109e6573d600060003e3d6000fd5b610100516001600960e05160a052608052604060802001557f1d6247eae69b5feb96b30be78552f35de45f61fdb6d6d7e1b08aae159b6226af60e05161014052610120516101605261010051610180526060610140a161010051610140526020610140f35b63e41ab7718118610aaa576004358060a01c61112e5760e052600054331861112e577f2861448678f0be67f11bfb5481b3e3b4cfeb3acc6126ad60a05f95bfc65306666002546101005260e051610120526040610100a160e051600255005b639ed796d08118610b09576004358060a01c61112e5760e052600054331861112e577f0617fd31aa5ab95ec80eefc1eb61a2c477aa419d1d761b4e46f5f077e47852aa6003546101005260e051610120526040610100a160e051600355005b63653023c28118610b68576004358060a01c61112e5760e052600054331861112e577f1cc4f8e20b0cd3e5109eb156cadcfd3a5496ac0794c6085ca02afd7d710dd5666004546101005260e051610120526040610100a160e051600455005b638f03182c8118610bc7576004358060a01c61112e5760e052600054331861112e577f1fd705f9c77053962a503f2f2f57f0862b4c3af687c25615c13817a86946c3596005546101005260e051610120526040610100a160e051600555005b636b441a408118610bf1576004358060a01c61112e5760e052600054331861112e5760e051600155005b63e5ea47b88118610c3c57600154331861112e577f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60005460e0523361010052604060e0a133600055005b63a87df06c8118610c5257600061012052610c65565b636982eb0b8118610cc057604435610120525b6004358060a01c61112e5760e0526024358060a01c61112e57610100526101005160e051186101405260016101205164010000000081101561112e570260066101405160a05260805260406080200154610160526020610160f35b639ac90d3d8118610d03576004358060a01c61112e5760e0526002600960e05160a052608052604060802001805461010052600181015461012052506040610100f35b6352b515558118610d58576004358060a01c61112e5760e0526004600960e05160a05260805260406080200154610100526101005160081c610120526101005161010080820690509050610140526040610120f35b6392e3cc2d8118610df4576004358060a01c61112e5760e052634903b0d1610100526000610120526020610100602461011c60e0515afa610d9e573d600060003e3d6000fd5b601f3d111561112e576101005161018052634903b0d1610140526001610160526020610140602461015c60e0515afa610ddc573d600060003e3d6000fd5b601f3d111561112e57610140516101a0526040610180f35b63eb85226d8118610f3f576004358060a01c61112e5760e0526024358060a01c61112e57610100526044358060a01c61112e57610120526002600960e05160a05260805260406080200180546101405260018101546101605250610140516101005118610e6957610160516101205114610e6c565b60005b610f2757610160516101005118610e8b57610140516101205114610e8e565b60005b610f0d57600f610180527f436f696e73206e6f7420666f756e6400000000000000000000000000000000006101a0526101805061018051806101a001818260206001820306601f82010390500336823750506308c379a0610140526020610160526101805160206001820306601f820103905060440161015cfd610f3d565b60016101805260006101a0526040610180610f3d56610f3d565b60006101805260016101a0526040610180610f3d565bf35b63daf297b98118610f77576004358060a01c61112e5760e0526001600960e05160a05260805260406080200154610100526020610100f35b63ccb156058118611025576004358060a01c61112e5760e05261010060006002818352015b602060203803608039608051600161010051600281101561112e57026002600960e05160a052608052604060802001015418610fe75750505061010051610120526020610120611023565b8151600101808352811415610f9c5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101005260206101005bf35b63977d9122811861105a576004358060a01c61112e5760e052600960e05160a052608052604060802054610100526020610100f35b63f851a44081186110715760005460e052602060e0f35b6317f7182a81186110885760015460e052602060e0f35b63cab4d3db811861109f5760025460e052602060e0f35b632489a2c381186110b65760035460e052602060e0f35b6335214d8181186110cd5760045460e052602060e0f35b638df2420781186110e45760055460e052602060e0f35b63956aae3a81186110fb5760085460e052602060e0f35b633a1d5d8e811861112657600160043564010000000081101561112e5702600a015460e052602060e0f35b505b60006000fd5b600080fd000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000ecb456ea5365865ebab8a2661b0c503410e9b347000000000000000000000000a85461afc2deec01bda23b5cd267d51f765fba10000000000000000000000000c08550a4cc5333f40e593ecc4c4724808085d304000000000000000000000000dc892358d55d5ae1ec47a531130d62151eba36e5000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

-----Decoded View---------------
Arg [0] : _fee_receiver (address): 0xeCb456EA5365865EbAb8a2661B0c503410e9B347
Arg [1] : _pool_implementation (address): 0xa85461AFc2DEEC01bDA23b5cd267d51F765fba10
Arg [2] : _token_implementation (address): 0xc08550A4cc5333f40e593eCc4C4724808085D304
Arg [3] : _gauge_implementation (address): 0xdc892358d55d5Ae1Ec47a531130D62151EBA36E5
Arg [4] : _weth (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000ecb456ea5365865ebab8a2661b0c503410e9b347
Arg [1] : 000000000000000000000000a85461afc2deec01bda23b5cd267d51f765fba10
Arg [2] : 000000000000000000000000c08550a4cc5333f40e593ecc4c4724808085d304
Arg [3] : 000000000000000000000000dc892358d55d5ae1ec47a531130d62151eba36e5
Arg [4] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.