ETH Price: $2,350.56 (+1.63%)
Gas: 6.37 Gwei

Contract

0x2a503138aaCD6aC7efA8A4FeD21A8e5a2f49f8f2
 

Overview

ETH Balance

0.002703987697888046 ETH

Eth Value

$6.36 (@ $2,350.56/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer100081112020-05-05 19:33:061588 days ago1588707186IN
0x2a503138...a2f49f8f2
1 ETH0.000092944
0x6080604099613992020-04-28 13:59:051595 days ago1588082345IN
 Contract Creation
0 ETH0.00388454

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
101631112020-05-29 21:32:501564 days ago1590787970
0x2a503138...a2f49f8f2
0.0101 ETH
101541032020-05-28 12:02:081566 days ago1590667328
0x2a503138...a2f49f8f2
0.0101 ETH
101344192020-05-25 10:31:541569 days ago1590402714
0x2a503138...a2f49f8f2
0.0101 ETH
101184622020-05-22 22:58:421571 days ago1590188322
0x2a503138...a2f49f8f2
0.0101 ETH
100987922020-05-19 21:27:571574 days ago1589923677
0x2a503138...a2f49f8f2
0.0101 ETH
100962732020-05-19 12:04:311575 days ago1589889871
0x2a503138...a2f49f8f2
0.00506968 ETH
100829842020-05-17 10:21:021577 days ago1589710862
0x2a503138...a2f49f8f2
0.00404 ETH
100632872020-05-14 8:51:351580 days ago1589446295
0x2a503138...a2f49f8f2
0.00404 ETH
100632852020-05-14 8:50:281580 days ago1589446228
0x2a503138...a2f49f8f2
0.00404 ETH
100584592020-05-13 14:56:231580 days ago1589381783
0x2a503138...a2f49f8f2
0.00404 ETH
100483072020-05-12 0:59:511582 days ago1589245191
0x2a503138...a2f49f8f2
0.00573925 ETH
100465772020-05-11 18:41:431582 days ago1589222503
0x2a503138...a2f49f8f2
0.03333 ETH
100445762020-05-11 11:10:181583 days ago1589195418
0x2a503138...a2f49f8f2
0.00646632 ETH
100444892020-05-11 10:51:071583 days ago1589194267
0x2a503138...a2f49f8f2
0.0101 ETH
100426892020-05-11 4:01:461583 days ago1589169706
0x2a503138...a2f49f8f2
0.0101 ETH
100345792020-05-09 21:58:311584 days ago1589061511
0x2a503138...a2f49f8f2
0.05555 ETH
100325082020-05-09 14:10:201584 days ago1589033420
0x2a503138...a2f49f8f2
0.0505 ETH
100321052020-05-09 12:37:211585 days ago1589027841
0x2a503138...a2f49f8f2
0.00587699 ETH
100285642020-05-08 23:29:021585 days ago1588980542
0x2a503138...a2f49f8f2
0.00573925 ETH
100264462020-05-08 15:40:501585 days ago1588952450
0x2a503138...a2f49f8f2
0.101 ETH
100229222020-05-08 2:31:451586 days ago1588905105
0x2a503138...a2f49f8f2
0.0101 ETH
100203152020-05-07 16:58:251586 days ago1588870705
0x2a503138...a2f49f8f2
0.6161 ETH
100148292020-05-06 20:29:261587 days ago1588796966
0x2a503138...a2f49f8f2
0.05555 ETH
100148252020-05-06 20:28:081587 days ago1588796888
0x2a503138...a2f49f8f2
0.05555 ETH
100123392020-05-06 11:07:041588 days ago1588763224
0x2a503138...a2f49f8f2
0.00587699 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xc2990045...F805AB010
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
RampInstantEthPool

Compiler Version
v0.5.10+commit.5a6ea5b1

Optimization Enabled:
Yes with 420 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-01-22
*/

pragma solidity 0.5.10;

/**
 * Copyright © 2017-2019 Ramp Network sp. z o.o. All rights reserved (MIT License).
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
 * and associated documentation files (the "Software"), to deal in the Software without restriction,
 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
 * is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all copies
 * or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
 * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */


/**
 * A standard, simple transferrable contract ownership.
 */
contract Ownable {

    address public owner;

    event OwnerChanged(address oldOwner, address newOwner);

    constructor() internal {
        owner = msg.sender;
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "only the owner can call this");
        _;
    }

    function changeOwner(address _newOwner) external onlyOwner {
        owner = _newOwner;
        emit OwnerChanged(msg.sender, _newOwner);
    }

}


/**
 * A contract that can be stopped/restarted by its owner.
 */
contract Stoppable is Ownable {

    bool public isActive = true;

    event IsActiveChanged(bool _isActive);

    modifier onlyActive() {
        require(isActive, "contract is stopped");
        _;
    }

    function setIsActive(bool _isActive) external onlyOwner {
        if (_isActive == isActive) return;
        isActive = _isActive;
        emit IsActiveChanged(_isActive);
    }

}

/**
 * A simple interface used by the escrows contract (precisely AssetAdapters) to interact
 * with the liquidity pools.
 */
contract RampInstantPoolInterface {

    uint16 public ASSET_TYPE;

    function sendFundsToSwap(uint256 _amount)
        public /*onlyActive onlySwapsContract isWithinLimits*/ returns(bool success);

}

/**
 * An interface of the RampInstantEscrows functions that are used by the liquidity pool contracts.
 * See RampInstantEscrows.sol for more comments.
 */
contract RampInstantEscrowsPoolInterface {

    uint16 public ASSET_TYPE;

    function release(
        address _pool,
        address payable _receiver,
        address _oracle,
        bytes calldata _assetData,
        bytes32 _paymentDetailsHash
    )
        external; /*statusAtLeast(Status.FINALIZE_ONLY) onlyOracleOrPool(_pool, _oracle)*/

    function returnFunds(
        address payable _pool,
        address _receiver,
        address _oracle,
        bytes calldata _assetData,
        bytes32 _paymentDetailsHash
    )
        external; /*statusAtLeast(Status.RETURN_ONLY) onlyOracleOrPool(_pool, _oracle)*/

}

/**
 * An abstract Ramp Instant Liquidity Pool. A liquidity provider deploys an instance of this
 * contract, and sends his funds to it. The escrows contract later withdraws portions of these
 * funds to be locked. The owner can withdraw any part of the funds at any time, or temporarily
 * block creating new escrows by stopping the contract.
 *
 * The pool owner can set and update min/max swap amounts, with an upper limit of 2^240 wei/units
 * (see `AssetAdapterWithFees` for more info).
 *
 * The paymentDetailsHash parameters works the same as in the `RampInstantEscrows` contract, only
 * with 0 value and empty transfer title. It describes the bank account where the pool owner expects
 * to be paid, and can be used to validate that a created swap indeed uses the same account.
 *
 * @author Ramp Network sp. z o.o.
 */
contract RampInstantPool is Ownable, Stoppable, RampInstantPoolInterface {

    uint256 constant private MAX_SWAP_AMOUNT_LIMIT = 1 << 240;
    uint16 public ASSET_TYPE;

    address payable public swapsContract;
    uint256 public minSwapAmount;
    uint256 public maxSwapAmount;
    bytes32 public paymentDetailsHash;

    /**
     * Triggered when the pool receives new funds, either a topup, or a returned escrow from an old
     * swaps contract if it was changed. Avilable for ETH, ERC-223 and ERC-777 token pools.
     * Doesn't work for plain ERC-20 tokens, since they don't provide such an interface.
     */
    event ReceivedFunds(address _from, uint256 _amount);
    event LimitsChanged(uint256 _minAmount, uint256 _maxAmount);
    event SwapsContractChanged(address _oldAddress, address _newAddress);

    constructor(
        address payable _swapsContract,
        uint256 _minSwapAmount,
        uint256 _maxSwapAmount,
        bytes32 _paymentDetailsHash,
        uint16 _assetType
    )
        public
        validateLimits(_minSwapAmount, _maxSwapAmount)
        validateSwapsContract(_swapsContract, _assetType)
    {
        swapsContract = _swapsContract;
        paymentDetailsHash = _paymentDetailsHash;
        minSwapAmount = _minSwapAmount;
        maxSwapAmount = _maxSwapAmount;
        ASSET_TYPE = _assetType;
    }

    function availableFunds() public view returns (uint256);

    function withdrawFunds(address payable _to, uint256 _amount)
        public /*onlyOwner*/ returns (bool success);

    function withdrawAllFunds(address payable _to) public onlyOwner returns (bool success) {
        return withdrawFunds(_to, availableFunds());
    }

    function setLimits(
        uint256 _minAmount,
        uint256 _maxAmount
    ) public onlyOwner validateLimits(_minAmount, _maxAmount) {
        minSwapAmount = _minAmount;
        maxSwapAmount = _maxAmount;
        emit LimitsChanged(_minAmount, _maxAmount);
    }

    function setSwapsContract(
        address payable _swapsContract
    ) public onlyOwner validateSwapsContract(_swapsContract, ASSET_TYPE) {
        address oldSwapsContract = swapsContract;
        swapsContract = _swapsContract;
        emit SwapsContractChanged(oldSwapsContract, _swapsContract);
    }

    function sendFundsToSwap(uint256 _amount)
        public /*onlyActive onlySwapsContract isWithinLimits*/ returns(bool success);

    function releaseSwap(
        address payable _receiver,
        address _oracle,
        bytes calldata _assetData,
        bytes32 _paymentDetailsHash
    ) external onlyOwner {
        RampInstantEscrowsPoolInterface(swapsContract).release(
            address(this),
            _receiver,
            _oracle,
            _assetData,
            _paymentDetailsHash
        );
    }

    function returnSwap(
        address _receiver,
        address _oracle,
        bytes calldata _assetData,
        bytes32 _paymentDetailsHash
    ) external onlyOwner {
        RampInstantEscrowsPoolInterface(swapsContract).returnFunds(
            address(this),
            _receiver,
            _oracle,
            _assetData,
            _paymentDetailsHash
        );
    }

    /**
     * Needed for address(this) to be payable in call to returnFunds.
     * The Eth pool overrides this to not throw.
     */
    function () external payable {
        revert("this pool cannot receive ether");
    }

    modifier onlySwapsContract() {
        require(msg.sender == swapsContract, "only the swaps contract can call this");
        _;
    }

    modifier isWithinLimits(uint256 _amount) {
        require(_amount >= minSwapAmount && _amount <= maxSwapAmount, "amount outside swap limits");
        _;
    }

    modifier validateLimits(uint256 _minAmount, uint256 _maxAmount) {
        require(_minAmount <= _maxAmount, "min limit over max limit");
        require(_maxAmount <= MAX_SWAP_AMOUNT_LIMIT, "maxAmount too high");
        _;
    }

    modifier validateSwapsContract(address payable _swapsContract, uint16 _assetType) {
        require(_swapsContract != address(0), "null swaps contract address");
        require(
            RampInstantEscrowsPoolInterface(_swapsContract).ASSET_TYPE() == _assetType,
            "pool asset type doesn't match swap contract"
        );
        _;
    }

}

/**
 * A pool that implements handling of ETH assets. See `RampInstantPool`.
 *
 * @author Ramp Network sp. z o.o.
 */
contract RampInstantEthPool is RampInstantPool {

    uint16 internal constant ETH_TYPE_ID = 1;

    constructor(
        address payable _swapsContract,
        uint256 _minSwapAmount,
        uint256 _maxSwapAmount,
        bytes32 _paymentDetailsHash
    )
        public
        RampInstantPool(
            _swapsContract, _minSwapAmount, _maxSwapAmount, _paymentDetailsHash, ETH_TYPE_ID
        )
    {}

    function availableFunds() public view returns(uint256) {
        return address(this).balance;
    }

    function withdrawFunds(
        address payable _to,
        uint256 _amount
    ) public onlyOwner returns (bool success) {
        _to.transfer(_amount);  // always throws on failure
        return true;
    }

    function sendFundsToSwap(
        uint256 _amount
    ) public onlyActive onlySwapsContract isWithinLimits(_amount) returns(bool success) {
        swapsContract.transfer(_amount);  // always throws on failure
        return true;
    }

    /**
     * This adapter can receive eth payments, but no other use of the fallback function is allowed.
     */
    function () external payable {
        require(msg.data.length == 0, "invalid pool function called");
        if (msg.sender != swapsContract) {
            emit ReceivedFunds(msg.sender, msg.value);
        }
    }

}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_receiver","type":"address"},{"name":"_oracle","type":"address"},{"name":"_assetData","type":"bytes"},{"name":"_paymentDetailsHash","type":"bytes32"}],"name":"returnSwap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isActive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_isActive","type":"bool"}],"name":"setIsActive","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"withdrawAllFunds","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minSwapAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paymentDetailsHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"availableFunds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"sendFundsToSwap","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ASSET_TYPE","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawFunds","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_minAmount","type":"uint256"},{"name":"_maxAmount","type":"uint256"}],"name":"setLimits","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxSwapAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_swapsContract","type":"address"}],"name":"setSwapsContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"swapsContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_receiver","type":"address"},{"name":"_oracle","type":"address"},{"name":"_assetData","type":"bytes"},{"name":"_paymentDetailsHash","type":"bytes32"}],"name":"releaseSwap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_swapsContract","type":"address"},{"name":"_minSwapAmount","type":"uint256"},{"name":"_maxSwapAmount","type":"uint256"},{"name":"_paymentDetailsHash","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"ReceivedFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_minAmount","type":"uint256"},{"indexed":false,"name":"_maxAmount","type":"uint256"}],"name":"LimitsChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_oldAddress","type":"address"},{"indexed":false,"name":"_newAddress","type":"address"}],"name":"SwapsContractChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_isActive","type":"bool"}],"name":"IsActiveChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}]

Deployed Bytecode

0x6080604052600436106100fe5760003560e01c80638815eb3911610095578063c4590d3f11610064578063c4590d3f14610402578063cce987d414610432578063d950f36514610447578063fa5d54291461047a578063fdc5d5221461048f576100fe565b80638815eb39146103395780638da5cb5b14610365578063a6f9dae114610396578063c1075329146103c9576100fe565b8063338246e2116100d1578063338246e2146102be578063428eecf0146102e557806346fcff4c146102fa57806381fd3f0b1461030f576100fe565b80631952e39c146101a057806322f3e2d4146102365780632750fc781461025f57806332dee40b1461028b575b3615610151576040805162461bcd60e51b815260206004820152601c60248201527f696e76616c696420706f6f6c2066756e6374696f6e2063616c6c656400000000604482015290519081900360640190fd5b6001546001600160a01b0316331461019e576040805133815234602082015281517f5741979df5f3e491501da74d3b0a83dd2496ab1f34929865b3e190a8ad75859a929181900390910190a15b005b3480156101ac57600080fd5b5061019e600480360360808110156101c357600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101f757600080fd5b82018360208201111561020957600080fd5b8035906020019184600183028401116401000000008311171561022b57600080fd5b919350915035610525565b34801561024257600080fd5b5061024b610630565b604080519115158252519081900360200190f35b34801561026b57600080fd5b5061019e6004803603602081101561028257600080fd5b50351515610640565b34801561029757600080fd5b5061024b600480360360208110156102ae57600080fd5b50356001600160a01b0316610701565b3480156102ca57600080fd5b506102d3610766565b60408051918252519081900360200190f35b3480156102f157600080fd5b506102d361076c565b34801561030657600080fd5b506102d3610772565b34801561031b57600080fd5b5061024b6004803603602081101561033257600080fd5b5035610777565b34801561034557600080fd5b5061034e6108c9565b6040805161ffff9092168252519081900360200190f35b34801561037157600080fd5b5061037a6108da565b604080516001600160a01b039092168252519081900360200190f35b3480156103a257600080fd5b5061019e600480360360208110156103b957600080fd5b50356001600160a01b03166108e9565b3480156103d557600080fd5b5061024b600480360360408110156103ec57600080fd5b506001600160a01b038135169060200135610992565b34801561040e57600080fd5b5061019e6004803603604081101561042557600080fd5b5080359060200135610a16565b34801561043e57600080fd5b506102d3610b5e565b34801561045357600080fd5b5061019e6004803603602081101561046a57600080fd5b50356001600160a01b0316610b64565b34801561048657600080fd5b5061037a610d2b565b34801561049b57600080fd5b5061019e600480360360808110156104b257600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156104e657600080fd5b8201836020820111156104f857600080fd5b8035906020019184600183028401116401000000008311171561051a57600080fd5b919350915035610d3a565b6000546001600160a01b03163314610572576040805162461bcd60e51b815260206004820152601c6024820152600080516020610e27833981519152604482015290519081900360640190fd5b60015460405163a80e7acb60e01b815230600482018181526001600160a01b03898116602485015288811660448501526084840186905260a06064850190815260a4850188905294169363a80e7acb938a928a928a928a928a92909160c401858580828437600081840152601f19601f820116905080830192505050975050505050505050600060405180830381600087803b15801561061157600080fd5b505af1158015610625573d6000803e3d6000fd5b505050505050505050565b600054600160a01b900460ff1681565b6000546001600160a01b0316331461068d576040805162461bcd60e51b815260206004820152601c6024820152600080516020610e27833981519152604482015290519081900360640190fd5b600060149054906101000a900460ff16151581151514156106ad576106fe565b60008054821515600160a01b810260ff60a01b199092169190911790915560408051918252517f93eaa614ad05cba2561ada88d825206f767e87209f81f491c9b6091abeb5f8579181900360200190a15b50565b600080546001600160a01b0316331461074f576040805162461bcd60e51b815260206004820152601c6024820152600080516020610e27833981519152604482015290519081900360640190fd5b6107608261075b610772565b610992565b92915050565b60025481565b60045481565b303190565b60008054600160a01b900460ff166107d6576040805162461bcd60e51b815260206004820152601360248201527f636f6e74726163742069732073746f7070656400000000000000000000000000604482015290519081900360640190fd5b6001546001600160a01b0316331461081f5760405162461bcd60e51b8152600401808060200182810382526025815260200180610e476025913960400191505060405180910390fd5b81600254811015801561083457506003548111155b610885576040805162461bcd60e51b815260206004820152601a60248201527f616d6f756e74206f7574736964652073776170206c696d697473000000000000604482015290519081900360640190fd5b6001546040516001600160a01b039091169084156108fc029085906000818181858888f193505050501580156108bf573d6000803e3d6000fd5b5060019392505050565b600054600160b81b900461ffff1681565b6000546001600160a01b031681565b6000546001600160a01b03163314610936576040805162461bcd60e51b815260206004820152601c6024820152600080516020610e27833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b03831690811790915560408051338152602081019290925280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150565b600080546001600160a01b031633146109e0576040805162461bcd60e51b815260206004820152601c6024820152600080516020610e27833981519152604482015290519081900360640190fd5b6040516001600160a01b0384169083156108fc029084906000818181858888f193505050501580156108bf573d6000803e3d6000fd5b6000546001600160a01b03163314610a63576040805162461bcd60e51b815260206004820152601c6024820152600080516020610e27833981519152604482015290519081900360640190fd5b818180821115610aba576040805162461bcd60e51b815260206004820152601860248201527f6d696e206c696d6974206f766572206d6178206c696d69740000000000000000604482015290519081900360640190fd5b600160f01b811115610b13576040805162461bcd60e51b815260206004820152601260248201527f6d6178416d6f756e7420746f6f20686967680000000000000000000000000000604482015290519081900360640190fd5b60028490556003839055604080518581526020810185905281517fab1a2e99a7a60d154f951a42eca140d755f93d41ccfca4b6f7d5e521b64bee86929181900390910190a150505050565b60035481565b6000546001600160a01b03163314610bb1576040805162461bcd60e51b815260206004820152601c6024820152600080516020610e27833981519152604482015290519081900360640190fd5b6000548190600160b81b900461ffff166001600160a01b038216610c1c576040805162461bcd60e51b815260206004820152601b60248201527f6e756c6c20737761707320636f6e747261637420616464726573730000000000604482015290519081900360640190fd5b8061ffff16826001600160a01b0316638815eb396040518163ffffffff1660e01b815260040160206040518083038186803b158015610c5a57600080fd5b505afa158015610c6e573d6000803e3d6000fd5b505050506040513d6020811015610c8457600080fd5b505161ffff1614610cc65760405162461bcd60e51b815260040180806020018281038252602b815260200180610e6c602b913960400191505060405180910390fd5b600180546001600160a01b038581166001600160a01b0319831681179093556040805191909216808252602082019390935281517f1da46151351b5d8e3ef8081319c4e364056c3fe3038a275a6b4638ab203b3f31929181900390910190a150505050565b6001546001600160a01b031681565b6000546001600160a01b03163314610d87576040805162461bcd60e51b815260206004820152601c6024820152600080516020610e27833981519152604482015290519081900360640190fd5b600154604051639a3c6e2960e01b815230600482018181526001600160a01b03898116602485015288811660448501526084840186905260a06064850190815260a48501889052941693639a3c6e29938a928a928a928a928a92909160c401858580828437600081840152601f19601f820116905080830192505050975050505050505050600060405180830381600087803b15801561061157600080fdfe6f6e6c7920746865206f776e65722063616e2063616c6c2074686973000000006f6e6c792074686520737761707320636f6e74726163742063616e2063616c6c2074686973706f6f6c206173736574207479706520646f65736e2774206d61746368207377617020636f6e7472616374a265627a7a72305820b94e84e15ed203ba447c0ed709d11394d40262ffeb23ff1f347c2cb2ad57dece64736f6c634300050a0032

Deployed Bytecode Sourcemap

8783:1359:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9965:8;:20;9957:61;;;;;-1:-1:-1;;;9957:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10047:13;;-1:-1:-1;;;;;10047:13:0;10033:10;:27;10029:101;;10082:36;;;10096:10;10082:36;;10108:9;10082:36;;;;;;;;;;;;;;;;;10029:101;8783:1359;7096:395;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7096:395:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;7096:395:0;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;7096:395:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7096:395:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;7096:395:0;;-1:-1:-1;7096:395:0;-1:-1:-1;7096:395:0;;:::i;1846:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1846:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;2029:181;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2029:181:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2029:181:0;;;;:::i;5793:149::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5793:149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5793:149:0;-1:-1:-1;;;;;5793:149:0;;:::i;4440:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4440:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;4510:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4510:33:0;;;:::i;9214:102::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9214:102:0;;;:::i;9549:241::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9549:241:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9549:241:0;;:::i;4364:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4364:24:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1301:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1301:20:0;;;:::i;:::-;;;;-1:-1:-1;;;;;1301:20:0;;;;;;;;;;;;;;1581:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1581:146:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1581:146:0;-1:-1:-1;;;;;1581:146:0;;:::i;9324:217::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9324:217:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9324:217:0;;;;;;;;:::i;5950:275::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5950:275:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5950:275:0;;;;;;;:::i;4475:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4475:28:0;;;:::i;6233:311::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6233:311:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6233:311:0;-1:-1:-1;;;;;6233:311:0;;:::i;4397:36::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4397:36:0;;;:::i;6688:400::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6688:400:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;6688:400:0;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6688:400:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6688:400:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6688:400:0;;-1:-1:-1;6688:400:0;-1:-1:-1;6688:400:0;;:::i;7096:395::-;1515:5;;-1:-1:-1;;;;;1515:5:0;1501:10;:19;1493:60;;;;;-1:-1:-1;;;1493:60:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1493:60:0;;;;;;;;;;;;;;;7313:13;;7281:202;;-1:-1:-1;;;7281:202:0;;7362:4;7281:202;;;;;;-1:-1:-1;;;;;7281:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7313:13;;;7281:58;;7382:9;;7406:7;;7428:10;;;;7453:19;;7281:202;;;;7428:10;;;;7281:202;1:33:-1;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7281:202:0;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7281:202:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7281:202:0;;;;7096:395;;;;;:::o;1846:27::-;;;-1:-1:-1;;;1846:27:0;;;;;:::o;2029:181::-;1515:5;;-1:-1:-1;;;;;1515:5:0;1501:10;:19;1493:60;;;;;-1:-1:-1;;;1493:60:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1493:60:0;;;;;;;;;;;;;;;2113:8;;;;;;;;;;;2100:21;;:9;:21;;;2096:34;;;2123:7;;2096:34;2140:8;:20;;;;;-1:-1:-1;;;2140:20:0;;-1:-1:-1;;;;2140:20:0;;;;;;;;;;2176:26;;;;;;;;;;;;;;;;1564:1;2029:181;:::o;5793:149::-;5866:12;1515:5;;-1:-1:-1;;;;;1515:5:0;1501:10;:19;1493:60;;;;;-1:-1:-1;;;1493:60:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1493:60:0;;;;;;;;;;;;;;;5898:36;5912:3;5917:16;:14;:16::i;:::-;5898:13;:36::i;:::-;5891:43;5793:149;-1:-1:-1;;5793:149:0:o;4440:28::-;;;;:::o;4510:33::-;;;;:::o;9214:102::-;9295:4;9287:21;9214:102;:::o;9549:241::-;9675:12;1969:8;;-1:-1:-1;;;1969:8:0;;;;1961:40;;;;;-1:-1:-1;;;1961:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7796:13;;-1:-1:-1;;;;;7796:13:0;7782:10;:27;7774:77;;;;-1:-1:-1;;;7774:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9658:7;7950:13;;7939:7;:24;;:52;;;;;7978:13;;7967:7;:24;;7939:52;7931:91;;;;;-1:-1:-1;;;7931:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9700:13;;:31;;-1:-1:-1;;;;;9700:13:0;;;;:31;;;;;9723:7;;9700:13;:31;:13;:31;9723:7;9700:13;:31;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;9778:4:0;;9549:241;-1:-1:-1;;;9549:241:0:o;4364:24::-;;;-1:-1:-1;;;4364:24:0;;;;;:::o;1301:20::-;;;-1:-1:-1;;;;;1301:20:0;;:::o;1581:146::-;1515:5;;-1:-1:-1;;;;;1515:5:0;1501:10;:19;1493:60;;;;;-1:-1:-1;;;1493:60:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1493:60:0;;;;;;;;;;;;;;;1651:5;:17;;-1:-1:-1;;;;;;1651:17:0;-1:-1:-1;;;;;1651:17:0;;;;;;;;1684:35;;;1697:10;1684:35;;;;;;;;;;;;;;;;;;;;;1581:146;:::o;9324:217::-;9436:12;1515:5;;-1:-1:-1;;;;;1515:5:0;1501:10;:19;1493:60;;;;;-1:-1:-1;;;1493:60:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1493:60:0;;;;;;;;;;;;;;;9461:21;;-1:-1:-1;;;;;9461:12:0;;;:21;;;;;9474:7;;9461:21;;;;9474:7;9461:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5950:275:0;1515:5;;-1:-1:-1;;;;;1515:5:0;1501:10;:19;1493:60;;;;;-1:-1:-1;;;1493:60:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1493:60:0;;;;;;;;;;;;;;;6066:10;6078;8147;8133;:24;;8125:61;;;;;-1:-1:-1;;;8125:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8205:10:0;:35;;8197:66;;;;;-1:-1:-1;;;8197:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6101:13;:26;;;6138:13;:26;;;6180:37;;;;;;;;;;;;;;;;;;;;;;;;;1564:1;;5950:275;;:::o;4475:28::-;;;;:::o;6233:311::-;1515:5;;-1:-1:-1;;;;;1515:5:0;1501:10;:19;1493:60;;;;;-1:-1:-1;;;1493:60:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1493:60:0;;;;;;;;;;;;;;;6362:10;;6346:14;;-1:-1:-1;;;6362:10:0;;;;-1:-1:-1;;;;;8392:28:0;;8384:68;;;;;-1:-1:-1;;;8384:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8549:10;8485:74;;8517:14;-1:-1:-1;;;;;8485:58:0;;:60;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8485:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8485:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8485:60:0;:74;;;8463:167;;;;-1:-1:-1;;;8463:167:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6412:13;;;-1:-1:-1;;;;;6436:30:0;;;-1:-1:-1;;;;;;6436:30:0;;;;;;;6482:54;;;6412:13;;;;6482:54;;;;;;;;;;;;;;;;;;;;;;;8641:1;1564;;6233:311;:::o;4397:36::-;;;-1:-1:-1;;;;;4397:36:0;;:::o;6688:400::-;1515:5;;-1:-1:-1;;;;;1515:5:0;1501:10;:19;1493:60;;;;;-1:-1:-1;;;1493:60:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1493:60:0;;;;;;;;;;;;;;;6914:13;;6882:198;;-1:-1:-1;;;6882:198:0;;6959:4;6882:198;;;;;;-1:-1:-1;;;;;6882:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6914:13;;;6882:54;;6979:9;;7003:7;;7025:10;;;;7050:19;;6882:198;;;;7025:10;;;;6882:198;1:33:-1;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6882:198:0;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12

Swarm Source

bzzr://b94e84e15ed203ba447c0ed709d11394d40262ffeb23ff1f347c2cb2ad57dece

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.