ETH Price: $1,991.66 (-1.57%)

Contract

0xdd5102f902b0892D1bbf2D2d0fCBE11ccEA1D537
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To

There are no matching entries

> 10 Internal Transactions and > 10 Token Transfers found.

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-110576912020-10-15 2:30:571991 days ago1602729057
0xdd5102f9...ccEA1D537
0.1871502 ETH
-110576912020-10-15 2:30:571991 days ago1602729057
0xdd5102f9...ccEA1D537
0.1871502 ETH
-110506722020-10-14 0:52:291992 days ago1602636749
0xdd5102f9...ccEA1D537
0.2799067 ETH
-110506722020-10-14 0:52:291992 days ago1602636749
0xdd5102f9...ccEA1D537
0.2799067 ETH
-110441622020-10-13 0:58:161993 days ago1602550696
0xdd5102f9...ccEA1D537
0.231285 ETH
-110441622020-10-13 0:58:161993 days ago1602550696
0xdd5102f9...ccEA1D537
0.231285 ETH
-110439892020-10-13 0:24:481993 days ago1602548688
0xdd5102f9...ccEA1D537
0.1352313 ETH
-110439892020-10-13 0:24:481993 days ago1602548688
0xdd5102f9...ccEA1D537
0.1352313 ETH
-110402662020-10-12 10:36:401994 days ago1602499000
0xdd5102f9...ccEA1D537
0.1613545 ETH
-110402662020-10-12 10:36:401994 days ago1602499000
0xdd5102f9...ccEA1D537
0.1613545 ETH
-110355692020-10-11 17:22:201994 days ago1602436940
0xdd5102f9...ccEA1D537
0.2319985 ETH
-110355692020-10-11 17:22:201994 days ago1602436940
0xdd5102f9...ccEA1D537
0.2319985 ETH
-110211882020-10-09 12:12:571997 days ago1602245577
0xdd5102f9...ccEA1D537
0.18968364 ETH
-110211882020-10-09 12:12:571997 days ago1602245577
0xdd5102f9...ccEA1D537
0.18968364 ETH
-110063212020-10-07 3:57:541999 days ago1602043074
0xdd5102f9...ccEA1D537
0.176167 ETH
-110063212020-10-07 3:57:541999 days ago1602043074
0xdd5102f9...ccEA1D537
0.176167 ETH
-109978822020-10-05 20:27:342000 days ago1601929654
0xdd5102f9...ccEA1D537
0.14547447 ETH
-109978822020-10-05 20:27:342000 days ago1601929654
0xdd5102f9...ccEA1D537
0.14547447 ETH
-109886912020-10-04 9:55:112002 days ago1601805311
0xdd5102f9...ccEA1D537
0.28899733 ETH
-109886912020-10-04 9:55:112002 days ago1601805311
0xdd5102f9...ccEA1D537
0.28899733 ETH
-109789492020-10-02 21:17:282003 days ago1601673448
0xdd5102f9...ccEA1D537
0.31320954 ETH
-109789492020-10-02 21:17:282003 days ago1601673448
0xdd5102f9...ccEA1D537
0.31320954 ETH
-109745942020-10-02 4:51:152004 days ago1601614275
0xdd5102f9...ccEA1D537
4.46287 ETH
-109745942020-10-02 4:51:152004 days ago1601614275
0xdd5102f9...ccEA1D537
4.46287 ETH
-109673232020-10-01 1:44:362005 days ago1601516676
0xdd5102f9...ccEA1D537
0.2911345 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UniswapTokenSeller

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-03-10
*/

// Solidity Interface

pragma solidity ^0.5.11;

contract UniswapFactoryInterface {
    // Public Variables
    address public exchangeTemplate;
    uint256 public tokenCount;
    // Create Exchange
    function createExchange(address token) external returns (address exchange);
    // Get Exchange and Token Info
    function getExchange(address token) external view returns (address exchange);
    function getToken(address exchange) external view returns (address token);
    function getTokenWithId(uint256 tokenId) external view returns (address token);
    // Never use
    function initializeFactory(address template) external;
}// Solidity Interface


contract UniswapExchangeInterface {
    // Address of ERC20 token sold on this exchange
    function tokenAddress() external view returns (address token);
    // Address of Uniswap Factory
    function factoryAddress() external view returns (address factory);
    // Provide Liquidity
    function addLiquidity(uint256 min_liquidity, uint256 max_tokens, uint256 deadline) external payable returns (uint256);
    function removeLiquidity(uint256 amount, uint256 min_eth, uint256 min_tokens, uint256 deadline) external returns (uint256, uint256);
    // Get Prices
    function getEthToTokenInputPrice(uint256 eth_sold) external view returns (uint256 tokens_bought);
    function getEthToTokenOutputPrice(uint256 tokens_bought) external view returns (uint256 eth_sold);
    function getTokenToEthInputPrice(uint256 tokens_sold) external view returns (uint256 eth_bought);
    function getTokenToEthOutputPrice(uint256 eth_bought) external view returns (uint256 tokens_sold);
    // Trade ETH to ERC20
    function ethToTokenSwapInput(uint256 min_tokens, uint256 deadline) external payable returns (uint256  tokens_bought);
    function ethToTokenTransferInput(uint256 min_tokens, uint256 deadline, address recipient) external payable returns (uint256  tokens_bought);
    function ethToTokenSwapOutput(uint256 tokens_bought, uint256 deadline) external payable returns (uint256  eth_sold);
    function ethToTokenTransferOutput(uint256 tokens_bought, uint256 deadline, address recipient) external payable returns (uint256  eth_sold);
    // Trade ERC20 to ETH
    function tokenToEthSwapInput(uint256 tokens_sold, uint256 min_eth, uint256 deadline) external returns (uint256  eth_bought);
    function tokenToEthTransferInput(uint256 tokens_sold, uint256 min_eth, uint256 deadline, address recipient) external returns (uint256  eth_bought);
    function tokenToEthSwapOutput(uint256 eth_bought, uint256 max_tokens, uint256 deadline) external returns (uint256  tokens_sold);
    function tokenToEthTransferOutput(uint256 eth_bought, uint256 max_tokens, uint256 deadline, address recipient) external returns (uint256  tokens_sold);
    // Trade ERC20 to ERC20
    function tokenToTokenSwapInput(uint256 tokens_sold, uint256 min_tokens_bought, uint256 min_eth_bought, uint256 deadline, address token_addr) external returns (uint256  tokens_bought);
    function tokenToTokenTransferInput(uint256 tokens_sold, uint256 min_tokens_bought, uint256 min_eth_bought, uint256 deadline, address recipient, address token_addr) external returns (uint256  tokens_bought);
    function tokenToTokenSwapOutput(uint256 tokens_bought, uint256 max_tokens_sold, uint256 max_eth_sold, uint256 deadline, address token_addr) external returns (uint256  tokens_sold);
    function tokenToTokenTransferOutput(uint256 tokens_bought, uint256 max_tokens_sold, uint256 max_eth_sold, uint256 deadline, address recipient, address token_addr) external returns (uint256  tokens_sold);
    // Trade ERC20 to Custom Pool
    function tokenToExchangeSwapInput(uint256 tokens_sold, uint256 min_tokens_bought, uint256 min_eth_bought, uint256 deadline, address exchange_addr) external returns (uint256  tokens_bought);
    function tokenToExchangeTransferInput(uint256 tokens_sold, uint256 min_tokens_bought, uint256 min_eth_bought, uint256 deadline, address recipient, address exchange_addr) external returns (uint256  tokens_bought);
    function tokenToExchangeSwapOutput(uint256 tokens_bought, uint256 max_tokens_sold, uint256 max_eth_sold, uint256 deadline, address exchange_addr) external returns (uint256  tokens_sold);
    function tokenToExchangeTransferOutput(uint256 tokens_bought, uint256 max_tokens_sold, uint256 max_eth_sold, uint256 deadline, address recipient, address exchange_addr) external returns (uint256  tokens_sold);
    // ERC20 comaptibility for liquidity tokens
    bytes32 public name;
    bytes32 public symbol;
    uint256 public decimals;
    function transfer(address _to, uint256 _value) external returns (bool);
    function transferFrom(address _from, address _to, uint256 value) external returns (bool);
    function approve(address _spender, uint256 _value) external returns (bool);
    function allowance(address _owner, address _spender) external view returns (uint256);
    function balanceOf(address _owner) external view returns (uint256);
    function totalSupply() external view returns (uint256);
    // Never use
    function setup(address token_addr) external;
}/*

  Copyright 2017 Loopring Project Ltd (Loopring Foundation).

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
*/


/*

  Copyright 2017 Loopring Project Ltd (Loopring Foundation).

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
*/


/// @title ITokenSeller
/// @dev Use this contract to sell tokenS for as many tokenB.
/// @author Daniel Wang  - <daniel@loopring.org>
contract ITokenSeller
{
    /// @dev Sells all tokenS for tokenB
    /// @param tokenS The token or Ether (0x0) to sell.
    /// @param tokenB The token to buy.
    /// @return success True if success, false otherwise.
    function sellToken(
        address tokenS,
        address tokenB
        )
        external
        payable
        returns (bool success);
}

/*

  Copyright 2017 Loopring Project Ltd (Loopring Foundation).

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
*/



/// @title ERC20 Token Interface
/// @dev see https://github.com/ethereum/EIPs/issues/20
/// @author Daniel Wang - <daniel@loopring.org>
contract ERC20
{
    function totalSupply()
        public
        view
        returns (uint);

    function balanceOf(
        address who
        )
        public
        view
        returns (uint);

    function allowance(
        address owner,
        address spender
        )
        public
        view
        returns (uint);

    function transfer(
        address to,
        uint value
        )
        public
        returns (bool);

    function transferFrom(
        address from,
        address to,
        uint    value
        )
        public
        returns (bool);

    function approve(
        address spender,
        uint    value
        )
        public
        returns (bool);
}

/*

  Copyright 2017 Loopring Project Ltd (Loopring Foundation).

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
*/



/// @title Utility Functions for uint
/// @author Daniel Wang - <daniel@loopring.org>
library MathUint
{
    function mul(
        uint a,
        uint b
        )
        internal
        pure
        returns (uint c)
    {
        c = a * b;
        require(a == 0 || c / a == b, "MUL_OVERFLOW");
    }

    function sub(
        uint a,
        uint b
        )
        internal
        pure
        returns (uint)
    {
        require(b <= a, "SUB_UNDERFLOW");
        return a - b;
    }

    function add(
        uint a,
        uint b
        )
        internal
        pure
        returns (uint c)
    {
        c = a + b;
        require(c >= a, "ADD_OVERFLOW");
    }

    function decodeFloat(
        uint f
        )
        internal
        pure
        returns (uint value)
    {
        uint numBitsMantissa = 23;
        uint exponent = f >> numBitsMantissa;
        uint mantissa = f & ((1 << numBitsMantissa) - 1);
        value = mantissa * (10 ** exponent);
    }
}

/*

  Copyright 2017 Loopring Project Ltd (Loopring Foundation).

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
*/



/// @title ReentrancyGuard
/// @author Brecht Devos - <brecht@loopring.org>
/// @dev Exposes a modifier that guards a function against reentrancy
///      Changing the value of the same storage value multiple times in a transaction
///      is cheap (starting from Istanbul) so there is no need to minimize
///      the number of times the value is changed
contract ReentrancyGuard
{
    //The default value must be 0 in order to work behind a proxy.
    uint private _guardValue;

    // Use this modifier on a function to prevent reentrancy
    modifier nonReentrant()
    {
        // Check if the guard value has its original value
        require(_guardValue == 0, "REENTRANCY");

        // Set the value to something else
        _guardValue = 1;

        // Function body
        _;

        // Set the value back
        _guardValue = 0;
    }
}






/// @title An ITokenSeller that sells token on Uniswap.
/// @dev This contract will sell all tokens or Ether received to other tokens or Ether
//       using the Uniswap contracts.
/// @author Daniel Wang  - <daniel@loopring.org>
contract UniswapTokenSeller is ReentrancyGuard, ITokenSeller {

    using MathUint for uint;

    uint256 constant MAX_UINT = ~uint(0);
    uint    public constant MAX_SLIPPAGE_BIPS = 100; // 1 percent
    address public uniswapFactoryAddress; // 0xc0a47dFe034B400B47bDaD5FecDa2621de6c4d95 on live
    address public recipient;

    event TokenSold (
        address indexed seller,
        address indexed recipient,
        address         tokenS,
        address         tokenB,
        uint            amountS,
        uint            amountB,
        uint8           slippage,
        uint64          time
    );

    constructor(
        address _uniswapFactoryAddress,
        address _recipient
        )
        public
    {
        require(_uniswapFactoryAddress != address(0), "ZERO_ADDRESS");
        uniswapFactoryAddress = _uniswapFactoryAddress;
        recipient = _recipient;
    }

    function() external payable { }

    function sellToken(
        address tokenS,
        address tokenB
        )
        external
        payable
        nonReentrant
        returns (bool success)
    {
        require(tokenS != tokenB, "SAME_TOKEN");

        // If `recipient` is set to non-zero, we send all purchased Ether/token to it.
        address _recipient = recipient == address(0) ? msg.sender : recipient;
        uint  amountS; // amount to sell
        uint  amountB; // amount bought
        uint8 slippage;
        UniswapExchangeInterface exchange;

        if (tokenS == address(0)) {
            // Sell ETH to ERC20
            amountS = address(this).balance;
            require(amountS > 0, "ZERO_AMOUNT");
            exchange = getUniswapExchange(tokenB);

            slippage = getSlippage(
                exchange.getEthToTokenInputPrice(amountS),
                exchange.getEthToTokenInputPrice(amountS.mul(2))
            );

            amountB = exchange.ethToTokenTransferInput.value(amountS)(
                1,  // min_tokens_bought
                MAX_UINT,
                _recipient
            );
        } else {
            // Selling ERC20 to ETH or other ERC20
            amountS = ERC20(tokenS).balanceOf(address(this));
            require(amountS > 0, "ZERO_AMOUNT");
            exchange = getUniswapExchange(tokenS);

            approveUniswapExchange(exchange, tokenS, amountS);

            if (tokenB == address(0)) {
                // Sell ERC20 to ETH
                slippage = getSlippage(
                    exchange.getTokenToEthInputPrice(amountS),
                    exchange.getTokenToEthInputPrice(amountS.mul(2))
                );

                amountB = exchange.tokenToEthTransferInput(
                    amountS,
                    1,  // min_eth_bought
                    MAX_UINT,
                    _recipient
                );
            } else {
                // Sell ERC20 to ERC20
                UniswapExchangeInterface exchangeB = getUniswapExchange(tokenB);
                slippage = getSlippage(
                    exchangeB.getEthToTokenInputPrice(exchange.getTokenToEthInputPrice(amountS)),
                    exchangeB.getEthToTokenInputPrice(exchange.getTokenToEthInputPrice(amountS.mul(2)))
                );

                amountB = exchange.tokenToTokenTransferInput(
                    amountS,
                    1, //  min_tokens_bought
                    1, //  min_eth_bought
                    MAX_UINT,
                    _recipient,
                    tokenB
                );
            }
        }

        emit TokenSold(
            msg.sender,
            _recipient,
            tokenS,
            tokenB,
            amountS,
            amountB,
            slippage,
            uint64(now)
        );

        return true;
    }

    function getUniswapExchange(address token)
        private
        view
        returns (UniswapExchangeInterface)
    {
        UniswapFactoryInterface factory = UniswapFactoryInterface(uniswapFactoryAddress);
        return UniswapExchangeInterface(factory.getExchange(token));
    }

    function approveUniswapExchange(
        UniswapExchangeInterface exchange,
        address tokenS,
        uint    amountS
        )
        private
    {
        ERC20 token = ERC20(tokenS);
        uint allowance = token.allowance(address(this), address(exchange));
        if (allowance < amountS) {
            require(
                token.approve(address(exchange), MAX_UINT),
                "APPROVAL_FAILURE"
            );
        }
    }

    function getSlippage(
        uint amountB,
        uint amountB2
        )
        private
        pure
        returns (uint8)
    {
        require(amountB > 0 && amountB2 > 0, "INVALID_PRICE");
        uint slippageBips = amountB.mul(2).sub(amountB2).mul(10000) / amountB;
        require(slippageBips <= MAX_SLIPPAGE_BIPS, "SLIPPAGE_TOO_LARGE");
        return uint8(slippageBips);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_uniswapFactoryAddress","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"seller","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"address","name":"tokenS","type":"address"},{"indexed":false,"internalType":"address","name":"tokenB","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountS","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountB","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"slippage","type":"uint8"},{"indexed":false,"internalType":"uint64","name":"time","type":"uint64"}],"name":"TokenSold","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"MAX_SLIPPAGE_BIPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"recipient","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tokenS","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"sellToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"uniswapFactoryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50604051610d01380380610d018339818101604052604081101561003357600080fd5b5080516020909101516001600160a01b038216610086576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055610c40806100c16000396000f3fe60806040526004361061003f5760003560e01c80630362fe3a146100415780633655ac3c1461006857806366d003ac14610099578063dc42f971146100ae575b005b34801561004d57600080fd5b506100566100f0565b60408051918252519081900360200190f35b34801561007457600080fd5b5061007d6100f5565b604080516001600160a01b039092168252519081900360200190f35b3480156100a557600080fd5b5061007d610104565b6100dc600480360360408110156100c457600080fd5b506001600160a01b0381358116916020013516610113565b604080519115158252519081900360200190f35b606481565b6001546001600160a01b031681565b6002546001600160a01b031681565b6000805415610156576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b60016000556001600160a01b0383811690831614156101a9576040805162461bcd60e51b815260206004820152600a60248201526929a0a6a2afaa27a5a2a760b11b604482015290519081900360640190fd5b6002546000906001600160a01b0316156101ce576002546001600160a01b03166101d0565b335b905060008080806001600160a01b0388166103c0574793506000841161022b576040805162461bcd60e51b815260206004820152600b60248201526a16915493d7d05353d5539560aa1b604482015290519081900360640190fd5b610234876108a1565b905061032e816001600160a01b031663cd7724c3866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561027d57600080fd5b505afa158015610291573d6000803e3d6000fd5b505050506040513d60208110156102a757600080fd5b50516001600160a01b03831663cd7724c36102c988600263ffffffff61092616565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156102fd57600080fd5b505afa158015610311573d6000803e3d6000fd5b505050506040513d602081101561032757600080fd5b5051610984565b6040805163ad65d76d60e01b81526001600482015260001960248201526001600160a01b03888116604483015291519294509083169163ad65d76d918791606480830192602092919082900301818588803b15801561038c57600080fd5b505af11580156103a0573d6000803e3d6000fd5b50505050506040513d60208110156103b757600080fd5b5051925061081d565b604080516370a0823160e01b815230600482015290516001600160a01b038a16916370a08231916024808301926020929190829003018186803b15801561040657600080fd5b505afa15801561041a573d6000803e3d6000fd5b505050506040513d602081101561043057600080fd5b5051935083610474576040805162461bcd60e51b815260206004820152600b60248201526a16915493d7d05353d5539560aa1b604482015290519081900360640190fd5b61047d886108a1565b905061048a818986610a68565b6001600160a01b0387166105ba5761052b816001600160a01b03166395b68fe7866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156104df57600080fd5b505afa1580156104f3573d6000803e3d6000fd5b505050506040513d602081101561050957600080fd5b50516001600160a01b0383166395b68fe76102c988600263ffffffff61092616565b60408051637237e03160e01b8152600481018790526001602482015260001960448201526001600160a01b038881166064830152915192945090831691637237e031916084808201926020929091908290030181600087803b15801561059057600080fd5b505af11580156105a4573d6000803e3d6000fd5b505050506040513d60208110156103b757600080fd5b60006105c5886108a1565b9050610779816001600160a01b031663cd7724c3846001600160a01b03166395b68fe7896040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561061d57600080fd5b505afa158015610631573d6000803e3d6000fd5b505050506040513d602081101561064757600080fd5b5051604080516001600160e01b031960e085901b1681526004810192909252516024808301926020929190829003018186803b15801561068657600080fd5b505afa15801561069a573d6000803e3d6000fd5b505050506040513d60208110156106b057600080fd5b50516001600160a01b038084169063cd7724c39086166395b68fe76106dc8b600263ffffffff61092616565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561071057600080fd5b505afa158015610724573d6000803e3d6000fd5b505050506040513d602081101561073a57600080fd5b5051604080516001600160e01b031960e085901b1681526004810192909252516024808301926020929190829003018186803b1580156102fd57600080fd5b6040805163f552d91b60e01b815260048101889052600160248201819052604482015260001960648201526001600160a01b0389811660848301528b811660a483015291519295509084169163f552d91b9160c4808201926020929091908290030181600087803b1580156107ed57600080fd5b505af1158015610801573d6000803e3d6000fd5b505050506040513d602081101561081757600080fd5b50519350505b604080516001600160a01b038a8116825289811660208301528183018790526060820186905260ff8516608083015267ffffffffffffffff421660a083015291519187169133917fe77887ce317fe4759be3a75828117567f0458304ab52611a2ff23c2ec3c1f2b1919081900360c00190a350506000805550600195945050505050565b600154604080516303795fb160e11b81526001600160a01b0384811660048301529151600093929092169182916306f2bf62916024808301926020929190829003018186803b1580156108f357600080fd5b505afa158015610907573d6000803e3d6000fd5b505050506040513d602081101561091d57600080fd5b50519392505050565b81810282158061093e57508183828161093b57fe5b04145b61097e576040805162461bcd60e51b815260206004820152600c60248201526b4d554c5f4f564552464c4f5760a01b604482015290519081900360640190fd5b92915050565b600080831180156109955750600082115b6109d6576040805162461bcd60e51b815260206004820152600d60248201526c494e56414c49445f505249434560981b604482015290519081900360640190fd5b600083610a0c612710610a00866109f485600263ffffffff61092616565b9063ffffffff610bbe16565b9063ffffffff61092616565b81610a1357fe5b0490506064811115610a61576040805162461bcd60e51b8152602060048201526012602482015271534c4950504147455f544f4f5f4c4152474560701b604482015290519081900360640190fd5b9392505050565b60408051636eb1769f60e11b81523060048201526001600160a01b038581166024830152915184926000929084169163dd62ed3e91604480820192602092909190829003018186803b158015610abd57600080fd5b505afa158015610ad1573d6000803e3d6000fd5b505050506040513d6020811015610ae757600080fd5b5051905082811015610bb7576040805163095ea7b360e01b81526001600160a01b038781166004830152600019602483015291519184169163095ea7b3916044808201926020929091908290030181600087803b158015610b4757600080fd5b505af1158015610b5b573d6000803e3d6000fd5b505050506040513d6020811015610b7157600080fd5b5051610bb7576040805162461bcd60e51b815260206004820152601060248201526f415050524f56414c5f4641494c55524560801b604482015290519081900360640190fd5b5050505050565b600082821115610c05576040805162461bcd60e51b815260206004820152600d60248201526c5355425f554e444552464c4f5760981b604482015290519081900360640190fd5b5090039056fea265627a7a72315820e80387ffc4c2fca8499dcf896e92d54820f794d690d2539502874af3b605646064736f6c63430005100032000000000000000000000000c0a47dfe034b400b47bdad5fecda2621de6c4d950000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061003f5760003560e01c80630362fe3a146100415780633655ac3c1461006857806366d003ac14610099578063dc42f971146100ae575b005b34801561004d57600080fd5b506100566100f0565b60408051918252519081900360200190f35b34801561007457600080fd5b5061007d6100f5565b604080516001600160a01b039092168252519081900360200190f35b3480156100a557600080fd5b5061007d610104565b6100dc600480360360408110156100c457600080fd5b506001600160a01b0381358116916020013516610113565b604080519115158252519081900360200190f35b606481565b6001546001600160a01b031681565b6002546001600160a01b031681565b6000805415610156576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b60016000556001600160a01b0383811690831614156101a9576040805162461bcd60e51b815260206004820152600a60248201526929a0a6a2afaa27a5a2a760b11b604482015290519081900360640190fd5b6002546000906001600160a01b0316156101ce576002546001600160a01b03166101d0565b335b905060008080806001600160a01b0388166103c0574793506000841161022b576040805162461bcd60e51b815260206004820152600b60248201526a16915493d7d05353d5539560aa1b604482015290519081900360640190fd5b610234876108a1565b905061032e816001600160a01b031663cd7724c3866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561027d57600080fd5b505afa158015610291573d6000803e3d6000fd5b505050506040513d60208110156102a757600080fd5b50516001600160a01b03831663cd7724c36102c988600263ffffffff61092616565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156102fd57600080fd5b505afa158015610311573d6000803e3d6000fd5b505050506040513d602081101561032757600080fd5b5051610984565b6040805163ad65d76d60e01b81526001600482015260001960248201526001600160a01b03888116604483015291519294509083169163ad65d76d918791606480830192602092919082900301818588803b15801561038c57600080fd5b505af11580156103a0573d6000803e3d6000fd5b50505050506040513d60208110156103b757600080fd5b5051925061081d565b604080516370a0823160e01b815230600482015290516001600160a01b038a16916370a08231916024808301926020929190829003018186803b15801561040657600080fd5b505afa15801561041a573d6000803e3d6000fd5b505050506040513d602081101561043057600080fd5b5051935083610474576040805162461bcd60e51b815260206004820152600b60248201526a16915493d7d05353d5539560aa1b604482015290519081900360640190fd5b61047d886108a1565b905061048a818986610a68565b6001600160a01b0387166105ba5761052b816001600160a01b03166395b68fe7866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156104df57600080fd5b505afa1580156104f3573d6000803e3d6000fd5b505050506040513d602081101561050957600080fd5b50516001600160a01b0383166395b68fe76102c988600263ffffffff61092616565b60408051637237e03160e01b8152600481018790526001602482015260001960448201526001600160a01b038881166064830152915192945090831691637237e031916084808201926020929091908290030181600087803b15801561059057600080fd5b505af11580156105a4573d6000803e3d6000fd5b505050506040513d60208110156103b757600080fd5b60006105c5886108a1565b9050610779816001600160a01b031663cd7724c3846001600160a01b03166395b68fe7896040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561061d57600080fd5b505afa158015610631573d6000803e3d6000fd5b505050506040513d602081101561064757600080fd5b5051604080516001600160e01b031960e085901b1681526004810192909252516024808301926020929190829003018186803b15801561068657600080fd5b505afa15801561069a573d6000803e3d6000fd5b505050506040513d60208110156106b057600080fd5b50516001600160a01b038084169063cd7724c39086166395b68fe76106dc8b600263ffffffff61092616565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561071057600080fd5b505afa158015610724573d6000803e3d6000fd5b505050506040513d602081101561073a57600080fd5b5051604080516001600160e01b031960e085901b1681526004810192909252516024808301926020929190829003018186803b1580156102fd57600080fd5b6040805163f552d91b60e01b815260048101889052600160248201819052604482015260001960648201526001600160a01b0389811660848301528b811660a483015291519295509084169163f552d91b9160c4808201926020929091908290030181600087803b1580156107ed57600080fd5b505af1158015610801573d6000803e3d6000fd5b505050506040513d602081101561081757600080fd5b50519350505b604080516001600160a01b038a8116825289811660208301528183018790526060820186905260ff8516608083015267ffffffffffffffff421660a083015291519187169133917fe77887ce317fe4759be3a75828117567f0458304ab52611a2ff23c2ec3c1f2b1919081900360c00190a350506000805550600195945050505050565b600154604080516303795fb160e11b81526001600160a01b0384811660048301529151600093929092169182916306f2bf62916024808301926020929190829003018186803b1580156108f357600080fd5b505afa158015610907573d6000803e3d6000fd5b505050506040513d602081101561091d57600080fd5b50519392505050565b81810282158061093e57508183828161093b57fe5b04145b61097e576040805162461bcd60e51b815260206004820152600c60248201526b4d554c5f4f564552464c4f5760a01b604482015290519081900360640190fd5b92915050565b600080831180156109955750600082115b6109d6576040805162461bcd60e51b815260206004820152600d60248201526c494e56414c49445f505249434560981b604482015290519081900360640190fd5b600083610a0c612710610a00866109f485600263ffffffff61092616565b9063ffffffff610bbe16565b9063ffffffff61092616565b81610a1357fe5b0490506064811115610a61576040805162461bcd60e51b8152602060048201526012602482015271534c4950504147455f544f4f5f4c4152474560701b604482015290519081900360640190fd5b9392505050565b60408051636eb1769f60e11b81523060048201526001600160a01b038581166024830152915184926000929084169163dd62ed3e91604480820192602092909190829003018186803b158015610abd57600080fd5b505afa158015610ad1573d6000803e3d6000fd5b505050506040513d6020811015610ae757600080fd5b5051905082811015610bb7576040805163095ea7b360e01b81526001600160a01b038781166004830152600019602483015291519184169163095ea7b3916044808201926020929091908290030181600087803b158015610b4757600080fd5b505af1158015610b5b573d6000803e3d6000fd5b505050506040513d6020811015610b7157600080fd5b5051610bb7576040805162461bcd60e51b815260206004820152601060248201526f415050524f56414c5f4641494c55524560801b604482015290519081900360640190fd5b5050505050565b600082821115610c05576040805162461bcd60e51b815260206004820152600d60248201526c5355425f554e444552464c4f5760981b604482015290519081900360640190fd5b5090039056fea265627a7a72315820e80387ffc4c2fca8499dcf896e92d54820f794d690d2539502874af3b605646064736f6c63430005100032

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

000000000000000000000000c0a47dfe034b400b47bdad5fecda2621de6c4d950000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _uniswapFactoryAddress (address): 0xc0a47dFe034B400B47bDaD5FecDa2621de6c4d95
Arg [1] : _recipient (address): 0x0000000000000000000000000000000000000000

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c0a47dfe034b400b47bdad5fecda2621de6c4d95
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

11921:5079:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12066:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12066:47:0;;;:::i;:::-;;;;;;;;;;;;;;;;12133:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12133:36:0;;;:::i;:::-;;;;-1:-1:-1;;;;;12133:36:0;;;;;;;;;;;;;;12230:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12230:24:0;;;:::i;12895:2917::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12895:2917:0;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;12066:47;12110:3;12066:47;:::o;12133:36::-;;;-1:-1:-1;;;;;12133:36:0;;:::o;12230:24::-;;;-1:-1:-1;;;;;12230:24:0;;:::o;12895:2917::-;13050:12;11460:11;;:16;11452:39;;;;;-1:-1:-1;;;11452:39:0;;;;;;;;;;;;-1:-1:-1;;;11452:39:0;;;;;;;;;;;;;;;11562:1;11548:11;:15;-1:-1:-1;;;;;13088:16:0;;;;;;;;13080:39;;;;;-1:-1:-1;;;13080:39:0;;;;;;;;;;;;-1:-1:-1;;;13080:39:0;;;;;;;;;;;;;;;13241:9;;13220:18;;-1:-1:-1;;;;;13241:9:0;:23;:48;;13280:9;;-1:-1:-1;;;;;13280:9:0;13241:48;;;13267:10;13241:48;13220:69;-1:-1:-1;13300:13:0;;;;-1:-1:-1;;;;;13458:20:0;;13454:2104;;13539:21;13529:31;;13593:1;13583:7;:11;13575:35;;;;;-1:-1:-1;;;13575:35:0;;;;;;;;;;;;-1:-1:-1;;;13575:35:0;;;;;;;;;;;;;;;13636:26;13655:6;13636:18;:26::i;:::-;13625:37;;13690:153;13720:8;-1:-1:-1;;;;;13720:32:0;;13753:7;13720:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13720:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13720:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13720:41:0;-1:-1:-1;;;;;13780:32:0;;;13813:14;:7;13825:1;13813:14;:11;:14;:::i;:::-;13780:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13780:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13780:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13780:48:0;13690:11;:153::i;:::-;13870:160;;;-1:-1:-1;;;13870:160:0;;13936:1;13870:160;;;;-1:-1:-1;;13870:160:0;;;;-1:-1:-1;;;;;13870:160:0;;;;;;;;;13679:164;;-1:-1:-1;13870:32:0;;;;;;13909:7;;13870:160;;;;;;;;;;;;;;13909:7;13870:32;:160;;;5:2:-1;;;;30:1;27;20:12;5:2;13870:160:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13870:160:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13870:160:0;;-1:-1:-1;13454:2104:0;;;14125:38;;;-1:-1:-1;;;14125:38:0;;14157:4;14125:38;;;;;;-1:-1:-1;;;;;14125:23:0;;;;;:38;;;;;;;;;;;;;;:23;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;14125:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14125:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14125:38:0;;-1:-1:-1;14186:11:0;14178:35;;;;;-1:-1:-1;;;14178:35:0;;;;;;;;;;;;-1:-1:-1;;;14178:35:0;;;;;;;;;;;;;;;14239:26;14258:6;14239:18;:26::i;:::-;14228:37;;14282:49;14305:8;14315:6;14323:7;14282:22;:49::i;:::-;-1:-1:-1;;;;;14352:20:0;;14348:1199;;14442:165;14476:8;-1:-1:-1;;;;;14476:32:0;;14509:7;14476:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14476:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14476:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14476:41:0;-1:-1:-1;;;;;14540:32:0;;;14573:14;:7;14585:1;14573:14;:11;:14;:::i;14442:165::-;14638:188;;;-1:-1:-1;;;14638:188:0;;;;;;;;14723:1;14638:188;;;;-1:-1:-1;;14638:188:0;;;;-1:-1:-1;;;;;14638:188:0;;;;;;;;;14431:176;;-1:-1:-1;14638:32:0;;;;;;:188;;;;;;;;;;;;;;;12057:1;14638:32;:188;;;5:2:-1;;;;30:1;27;20:12;5:2;14638:188:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14638:188:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;14348:1199:0;14907:34;14944:26;14963:6;14944:18;:26::i;:::-;14907:63;;15000:235;15034:9;-1:-1:-1;;;;;15034:33:0;;15068:8;-1:-1:-1;;;;;15068:32:0;;15101:7;15068:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15068:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15068:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15068:41:0;15034:76;;;-1:-1:-1;;;;;;15034:76:0;;;;;;;;;;;;;;;;;;;;15068:41;;15034:76;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;15034:76:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15034:76:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15034:76:0;-1:-1:-1;;;;;15133:33:0;;;;;;15167:32;;;15200:14;:7;15212:1;15200:14;:11;:14;:::i;:::-;15167:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15167:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15167:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15167:48:0;15133:83;;;-1:-1:-1;;;;;;15133:83:0;;;;;;;;;;;;;;;;;;;;15167:48;;15133:83;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;15000:235:0;15266:265;;;-1:-1:-1;;;15266:265:0;;;;;;;;15353:1;15266:265;;;;;;;;;;-1:-1:-1;;15266:265:0;;;;-1:-1:-1;;;;;15266:265:0;;;;;;;;;;;;;;;;14989:246;;-1:-1:-1;15266:34:0;;;;;;:265;;;;;;;;;;;;;;;12057:1;15266:34;:265;;;5:2:-1;;;;30:1;27;20:12;5:2;15266:265:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15266:265:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15266:265:0;;-1:-1:-1;;14348:1199:0;15575:205;;;-1:-1:-1;;;;;15575:205:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15765:3;15575:205;;;;;;;;;;;15599:10;;15575:205;;;;;;;;;;-1:-1:-1;;11661:1:0;11647:15;;-1:-1:-1;15800:4:0;;12895:2917;-1:-1:-1;;;;;12895:2917:0:o;15820:292::-;16012:21;;16077:26;;;-1:-1:-1;;;16077:26:0;;-1:-1:-1;;;;;16077:26:0;;;;;;;;;15912:24;;16012:21;;;;;;;16077:19;;:26;;;;;;;;;;;;;;16012:21;16077:26;;;5:2:-1;;;;30:1;27;20:12;5:2;16077:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16077:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16077:26:0;;15820:292;-1:-1:-1;;;15820:292:0:o;9232:205::-;9368:5;;;9392:6;;;:20;;;9411:1;9406;9402;:5;;;;;;:10;9392:20;9384:45;;;;;-1:-1:-1;;;9384:45:0;;;;;;;;;;;;-1:-1:-1;;;9384:45:0;;;;;;;;;;;;;;;9232:205;;;;:::o;16593:404::-;16721:5;16762:1;16752:7;:11;:27;;;;;16778:1;16767:8;:12;16752:27;16744:53;;;;;-1:-1:-1;;;16744:53:0;;;;;;;;;;;;-1:-1:-1;;;16744:53:0;;;;;;;;;;;;;;;16808:17;16870:7;16828:39;16861:5;16828:28;16847:8;16828:14;16870:7;16840:1;16828:14;:11;:14;:::i;:::-;:18;:28;:18;:28;:::i;:::-;:32;:39;:32;:39;:::i;:::-;:49;;;;;;16808:69;;12110:3;16896:12;:33;;16888:64;;;;;-1:-1:-1;;;16888:64:0;;;;;;;;;;;;-1:-1:-1;;;16888:64:0;;;;;;;;;;;;;;;16976:12;16593:404;-1:-1:-1;;;16593:404:0:o;16120:465::-;16346:49;;;-1:-1:-1;;;16346:49:0;;16370:4;16346:49;;;;-1:-1:-1;;;;;16346:49:0;;;;;;;;;16311:6;;16291:11;;16346:15;;;;;;:49;;;;;;;;;;;;;;;:15;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;16346:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16346:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16346:49:0;;-1:-1:-1;16410:19:0;;;16406:172;;;16472:42;;;-1:-1:-1;;;16472:42:0;;-1:-1:-1;;;;;16472:42:0;;;;;;;-1:-1:-1;;16472:42:0;;;;;;:13;;;;;;:42;;;;;;;;;;;;;;;12057:1;16472:13;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;16472:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16472:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16472:42:0;16446:120;;;;;-1:-1:-1;;;16446:120:0;;;;;;;;;;;;-1:-1:-1;;;16446:120:0;;;;;;;;;;;;;;;16120:465;;;;;:::o;9445:193::-;9553:4;9588:1;9583;:6;;9575:32;;;;;-1:-1:-1;;;9575:32:0;;;;;;;;;;;;-1:-1:-1;;;9575:32:0;;;;;;;;;;;;;;;-1:-1:-1;9625:5:0;;;9445:193::o

Swarm Source

bzzr://e80387ffc4c2fca8499dcf896e92d54820f794d690d2539502874af3b6056460

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.