MOVR Price: $21.88 (+2.28%)
Gas: 2 GWei

Contract

0x7f45Fd12651F397Db4916d32762bc9ce01740e3C

Overview

MOVR Balance

Moonriver Chain LogoMoonriver Chain LogoMoonriver Chain Logo0 MOVR

MOVR Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Open Escrow21070752022-06-28 11:25:12639 days ago1656415512IN
0x7f45Fd12...e01740e3C
0 MOVR0.000091313.5
0x6080604021070702022-06-28 11:23:48639 days ago1656415428IN
 Create: HydroTokenSwap
0 MOVR0.003150453.5

Advanced mode:
Parent Txn Hash Block From To Value
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
HydroTokenSwap

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at moonriver.moonscan.io on 2022-06-28
*/

// SPDX-License-Identifier: MIT

/*
MIT License
Copyright (c) 2020 Project Hydro
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.
*/

pragma solidity 0.6.12;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that revert on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, reverts on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (a == 0) {
      return 0;
    }

    uint256 c = a * b;
    require(c / a == b);

    return c;
  }

  /**
  * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b > 0); // Solidity only automatically asserts when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold

    return c;
  }

  /**
  * @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b <= a);
    uint256 c = a - b;

    return c;
  }

  /**
  * @dev Adds two numbers, reverts on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    require(c >= a);

    return c;
  }

  /**
  * @dev Divides two numbers and returns the remainder (unsigned integer modulo),
  * reverts when dividing by zero.
  */
  function mod(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b != 0);
    return a % b;
  }
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
interface IERC20 {
  function name() external view returns (string memory);
  function symbol() external view returns (string memory);
  function decimals() external view returns (uint8);
  function transfer(address to, uint256 value) external returns (bool);
  function approve(address spender, uint256 value) external returns (bool);
  function transferFrom(address from, address to, uint256 value) external returns (bool);
  function totalSupply() external view returns (uint256);
  function balanceOf(address who) external view returns (uint256);
  function allowance(address owner, address spender) external view returns (uint256);

  event Transfer(address indexed from, address indexed to, uint256 value);

  event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address private _owner;

  event OwnershipRenounced(address indexed previousOwner);
  
  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() public {
    _owner = msg.sender;
  }

  /**
   * @return the address of the owner.
   */
  function owner() public view returns(address) {
    return _owner;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(isOwner());
    _;
  }

  /**
   * @return true if `msg.sender` is the owner of the contract.
   */
  function isOwner() public view returns(bool) {
    return msg.sender == _owner;
  }

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   * @notice Renouncing to ownership will leave the contract without an owner.
   * It will not be possible to call the functions with the `onlyOwner`
   * modifier anymore.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(_owner);
    _owner = address(0);
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    _transferOwnership(newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address newOwner) internal {
    require(newOwner != address(0));
    emit OwnershipTransferred(_owner, newOwner);
    _owner = newOwner;
  }
}


/**
 * @title Hydro ERC20-ERC20 Swap Contract
 */
contract HydroTokenSwap is Ownable {
    using SafeMath for uint256;
    uint256 public totalAmountSwapped;

    address public Hydro_ADDRESS= 0x946112efaB61C3636CBD52DE2E1392D7A75A6f01;
    address Main_ADDRESS= 0x4aE8bfB81205837DE1437De26D02E5ca87694714;
    bool public isActive;
  
    struct User {
      address userAdd;
      uint256 totalAmountSwapped;
    }

    //a mapping to keep the details of users
    mapping(address => User) public userDetails;

    //main event that is emitted after a successful deposit
    event SwapDeposit(address indexed depositor, uint256 outputAmount);
    
    //make sure contract is open to swaps
    modifier notActive {
        require(isActive!=true, "Swapping is currently paused");
        _;
    }

    /**
     * @dev Allows the user to deposit some amount of Hydro tokens. Records user/swap data and emits a SwapDeposit event.
     * @param amount Amount of input tokens to be swapped.
     */
    function swap( uint256 amount) external  {
        require (isActive==true);
        require(amount > 0, "Input amount must be positive.");
        require(IERC20(Hydro_ADDRESS).transferFrom(msg.sender, Main_ADDRESS, amount), "Transferring Hydro tokens from user failed");
        userDetails[msg.sender].totalAmountSwapped+=amount;
        totalAmountSwapped+=amount;
        emit SwapDeposit(msg.sender,amount);
    }
    
    function setHydoContractAddress(address tokenAddress) public onlyOwner{
        Hydro_ADDRESS=tokenAddress;
    }

    function totalAmountSwappedInContract() public view returns(uint256){
        return totalAmountSwapped;
    }
    
  //allow the owner to activate the escrow contract
    function openEscrow() public onlyOwner notActive returns(bool){
        isActive=true;
    }
    
     //allow the owner to deactivate the escrow contract
    function closeEscrow() public onlyOwner returns(bool){
        isActive=false;
    }
    
    //allow owner to rescue any tokens sent to the contract
    function transferOut(address _token) public onlyOwner returns(bool){
        IERC20 token= IERC20(_token); 
        uint256 balance= token.balanceOf(address(this));
        require(token.transfer(msg.sender,balance),"HydroSwap: Token Transfer error");
return true;
    }
    /**
    !!!!!!!!!!!!!!!!!!
    !!!!!CAUTION!!!!!!
    !!!!!!!!!!!!!!!!!!
    **/
    //allow owner to change central wallet
    function changeCentralWallet(address _newWallet) public onlyOwner returns(bool){
        require(_newWallet!=address(0),"Error: Burn address not supported");
        Main_ADDRESS=_newWallet;
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"depositor","type":"address"},{"indexed":false,"internalType":"uint256","name":"outputAmount","type":"uint256"}],"name":"SwapDeposit","type":"event"},{"inputs":[],"name":"Hydro_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"changeCentralWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"closeEscrow","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openEscrow","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"setHydoContractAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalAmountSwapped","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAmountSwappedInContract","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"transferOut","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userDetails","outputs":[{"internalType":"address","name":"userAdd","type":"address"},{"internalType":"uint256","name":"totalAmountSwapped","type":"uint256"}],"stateMutability":"view","type":"function"}]

608060405273946112efab61c3636cbd52de2e1392d7a75a6f01600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734ae8bfb81205837de1437de26d02e5ca87694714600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156100ba57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e158061010a6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638da5cb5b11610097578063c163de3d11610066578063c163de3d14610341578063c26aa81014610361578063c861319e1461037f578063f2fde38b146103c3576100f5565b80638da5cb5b146102655780638f32d59b1461029957806394b918de146102b95780639894ba7c146102e7576100f5565b806348dec2a7116100d357806348dec2a71461016e578063654cfe80146101e35780637116406b14610201578063715018a61461025b576100f5565b806303201cc9146100fa57806322f3e2d41461012e578063269fadb31461014e575b600080fd5b610102610407565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61013661042d565b60405180821515815260200191505060405180910390f35b610156610440565b60405180821515815260200191505060405180910390f35b6101b06004803603602081101561018457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104fb565b604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b6101eb61053f565b6040518082815260200191505060405180910390f35b6102436004803603602081101561021757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610549565b60405180821515815260200191505060405180910390f35b61026361062c565b005b61026d6106e3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102a161070c565b60405180821515815260200191505060405180910390f35b6102e5600480360360208110156102cf57600080fd5b8101908080359060200190929190505050610763565b005b610329600480360360208110156102fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a0d565b60405180821515815260200191505060405180910390f35b610349610bf4565b60405180821515815260200191505060405180910390f35b610369610c25565b6040518082815260200191505060405180910390f35b6103c16004803603602081101561039557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c2b565b005b610405600480360360208110156103d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c80565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360149054906101000a900460ff1681565b600061044a61070c565b61045357600080fd5b60011515600360149054906101000a900460ff16151514156104dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5377617070696e672069732063757272656e746c79207061757365640000000081525060200191505060405180910390fd5b6001600360146101000a81548160ff02191690831515021790555090565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b6000600154905090565b600061055361070c565b61055c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156105e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180610dbf6021913960400191505060405180910390fd5b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b61063461070c565b61063d57600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60011515600360149054906101000a900460ff1615151461078357600080fd5b600081116107f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e70757420616d6f756e74206d75737420626520706f7369746976652e000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156108cc57600080fd5b505af11580156108e0573d6000803e3d6000fd5b505050506040513d60208110156108f657600080fd5b810190808051906020019092919050505061095c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180610d95602a913960400191505060405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540192505081905550806001600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167ffe680bd633ae867a4504b82e127494f973d26840939652b54fbbc4752628d20f826040518082815260200191505060405180910390a250565b6000610a1761070c565b610a2057600080fd5b600082905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610a8e57600080fd5b505afa158015610aa2573d6000803e3d6000fd5b505050506040513d6020811015610ab857600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610b3c57600080fd5b505af1158015610b50573d6000803e3d6000fd5b505050506040513d6020811015610b6657600080fd5b8101908080519060200190929190505050610be9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f487964726f537761703a20546f6b656e205472616e73666572206572726f720081525060200191505060405180910390fd5b600192505050919050565b6000610bfe61070c565b610c0757600080fd5b6000600360146101000a81548160ff02191690831515021790555090565b60015481565b610c3361070c565b610c3c57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610c8861070c565b610c9157600080fd5b610c9a81610c9d565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cd757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe5472616e7366657272696e6720487964726f20746f6b656e732066726f6d2075736572206661696c65644572726f723a204275726e2061646472657373206e6f7420737570706f72746564a26469706673582212205e7f74a1338f3d200ec367deac6c3aa4946eddeda886c8ffa0f98f5790c1dcfc64736f6c634300060c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638da5cb5b11610097578063c163de3d11610066578063c163de3d14610341578063c26aa81014610361578063c861319e1461037f578063f2fde38b146103c3576100f5565b80638da5cb5b146102655780638f32d59b1461029957806394b918de146102b95780639894ba7c146102e7576100f5565b806348dec2a7116100d357806348dec2a71461016e578063654cfe80146101e35780637116406b14610201578063715018a61461025b576100f5565b806303201cc9146100fa57806322f3e2d41461012e578063269fadb31461014e575b600080fd5b610102610407565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61013661042d565b60405180821515815260200191505060405180910390f35b610156610440565b60405180821515815260200191505060405180910390f35b6101b06004803603602081101561018457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104fb565b604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b6101eb61053f565b6040518082815260200191505060405180910390f35b6102436004803603602081101561021757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610549565b60405180821515815260200191505060405180910390f35b61026361062c565b005b61026d6106e3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102a161070c565b60405180821515815260200191505060405180910390f35b6102e5600480360360208110156102cf57600080fd5b8101908080359060200190929190505050610763565b005b610329600480360360208110156102fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a0d565b60405180821515815260200191505060405180910390f35b610349610bf4565b60405180821515815260200191505060405180910390f35b610369610c25565b6040518082815260200191505060405180910390f35b6103c16004803603602081101561039557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c2b565b005b610405600480360360208110156103d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c80565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360149054906101000a900460ff1681565b600061044a61070c565b61045357600080fd5b60011515600360149054906101000a900460ff16151514156104dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5377617070696e672069732063757272656e746c79207061757365640000000081525060200191505060405180910390fd5b6001600360146101000a81548160ff02191690831515021790555090565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b6000600154905090565b600061055361070c565b61055c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156105e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180610dbf6021913960400191505060405180910390fd5b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b61063461070c565b61063d57600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60011515600360149054906101000a900460ff1615151461078357600080fd5b600081116107f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e70757420616d6f756e74206d75737420626520706f7369746976652e000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156108cc57600080fd5b505af11580156108e0573d6000803e3d6000fd5b505050506040513d60208110156108f657600080fd5b810190808051906020019092919050505061095c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180610d95602a913960400191505060405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540192505081905550806001600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167ffe680bd633ae867a4504b82e127494f973d26840939652b54fbbc4752628d20f826040518082815260200191505060405180910390a250565b6000610a1761070c565b610a2057600080fd5b600082905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610a8e57600080fd5b505afa158015610aa2573d6000803e3d6000fd5b505050506040513d6020811015610ab857600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610b3c57600080fd5b505af1158015610b50573d6000803e3d6000fd5b505050506040513d6020811015610b6657600080fd5b8101908080519060200190929190505050610be9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f487964726f537761703a20546f6b656e205472616e73666572206572726f720081525060200191505060405180910390fd5b600192505050919050565b6000610bfe61070c565b610c0757600080fd5b6000600360146101000a81548160ff02191690831515021790555090565b60015481565b610c3361070c565b610c3c57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610c8861070c565b610c9157600080fd5b610c9a81610c9d565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cd757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe5472616e7366657272696e6720487964726f20746f6b656e732066726f6d2075736572206661696c65644572726f723a204275726e2061646472657373206e6f7420737570706f72746564a26469706673582212205e7f74a1338f3d200ec367deac6c3aa4946eddeda886c8ffa0f98f5790c1dcfc64736f6c634300060c0033

Deployed Bytecode Sourcemap

5820:2680:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5937:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6087:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7538:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6251:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;7361:112;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8276:221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5059:116;;;:::i;:::-;;4400:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4702:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6800:426;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7861:275;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7702:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5895:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7238:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5342:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5937:72;;;;;;;;;;;;;:::o;6087:20::-;;;;;;;;;;;;;:::o;7538:94::-;7595:4;4593:9;:7;:9::i;:::-;4585:18;;;;;;6534:4:::1;6524:14;;:8;;;;;;;;;;;:14;;;;6516:55;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;7620:4:::2;7611:8;;:13;;;;;;;;;;;;;;;;;;7538:94:::0;:::o;6251:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7361:112::-;7421:7;7447:18;;7440:25;;7361:112;:::o;8276:221::-;8350:4;4593:9;:7;:9::i;:::-;4585:18;;;;;;8394:1:::1;8374:22;;:10;:22;;;;8366:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8457:10;8444:12;;:23;;;;;;;;;;;;;;;;;;8485:4;8478:11;;8276:221:::0;;;:::o;5059:116::-;4593:9;:7;:9::i;:::-;4585:18;;;;;;5136:6:::1;::::0;::::1;;;;;;;;5117:26;;;;;;;;;;;;5167:1;5150:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5059:116::o:0;4400:72::-;4437:7;4460:6;;;;;;;;;;;4453:13;;4400:72;:::o;4702:85::-;4741:4;4775:6;;;;;;;;;;;4761:20;;:10;:20;;;4754:27;;4702:85;:::o;6800:426::-;6871:4;6861:14;;:8;;;;;;;;;;;:14;;;6852:24;;;;;;6904:1;6895:6;:10;6887:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6966:13;;;;;;;;;;;6959:34;;;6994:10;7006:12;;;;;;;;;;;7020:6;6959:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6951:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7129:6;7085:11;:23;7097:10;7085:23;;;;;;;;;;;;;;;:42;;;:50;;;;;;;;;;;7166:6;7146:18;;:26;;;;;;;;;;;7200:10;7188:30;;;7211:6;7188:30;;;;;;;;;;;;;;;;;;6800:426;:::o;7861:275::-;7923:4;4593:9;:7;:9::i;:::-;4585:18;;;;;;7939:12:::1;7960:6;7939:28;;7979:15;7996:5;:15;;;8020:4;7996:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;7979:47;;8045:5;:14;;;8060:10;8071:7;8045:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;8037:77;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8124:4;8117:11;;;;7861:275:::0;;;:::o;7702:86::-;7750:4;4593:9;:7;:9::i;:::-;4585:18;;;;;;7775:5:::1;7766:8;;:14;;;;;;;;;;;;;;;;;;7702:86:::0;:::o;5895:33::-;;;;:::o;7238:115::-;4593:9;:7;:9::i;:::-;4585:18;;;;;;7333:12:::1;7319:13;;:26;;;;;;;;;;;;;;;;;;7238:115:::0;:::o;5342:103::-;4593:9;:7;:9::i;:::-;4585:18;;;;;;5411:28:::1;5430:8;5411:18;:28::i;:::-;5342:103:::0;:::o;5585:173::-;5675:1;5655:22;;:8;:22;;;;5647:31;;;;;;5719:8;5690:38;;5711:6;;;;;;;;;;5690:38;;;;;;;;;;;;5744:8;5735:6;;:17;;;;;;;;;;;;;;;;;;5585:173;:::o

Swarm Source

ipfs://5e7f74a1338f3d200ec367deac6c3aa4946eddeda886c8ffa0f98f5790c1dcfc

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

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