Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x1cF4592ebfFd730c7dc92c1bdFFDfc3B9EfCf29a
Balance 0 ETH
Nonce 1
Code Size 6649 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

6649 bytes
0x608060405234801561001057600080fd5b50600436106101005760003560e01c806351cff8d911610097578063a694fc3a11610066578063a694fc3a1461030a578063a9059cbb14610327578063dd62ed3e14610353578063f2fde38b1461038157610100565b806351cff8d91461029257806370a08231146102b857806395d89b4114610105578063a457c2d7146102de57610100565b806323b872dd116100d357806323b872dd146101e6578063313ce5671461021c578063395093511461023a57806347e7ef241461026657610100565b806306fdde0314610105578063095ea7b3146101825780630fcc0c28146101c257806318160ddd146101cc575b600080fd5b61010d6103a7565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014757818101518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ae6004803603604081101561019857600080fd5b506001600160a01b0381351690602001356103c6565b604080519115158252519081900360200190f35b6101ca6103dc565b005b6101d461047a565b60408051918252519081900360200190f35b6101ae600480360360608110156101fc57600080fd5b506001600160a01b038135811691602081013590911690604001356104cb565b610224610553565b6040805160ff9092168252519081900360200190f35b6101ae6004803603604081101561025057600080fd5b506001600160a01b038135169060200135610558565b6101ae6004803603604081101561027c57600080fd5b506001600160a01b0381351690602001356105de565b6101ae600480360360208110156102a857600080fd5b50356001600160a01b0316610911565b6101d4600480360360208110156102ce57600080fd5b50356001600160a01b0316610bcc565b6101ae600480360360408110156102f457600080fd5b506001600160a01b038135169060200135610dd7565b6101ae6004803603602081101561032057600080fd5b5035610e47565b6101ae6004803603604081101561033d57600080fd5b506001600160a01b03813516906020013561111e565b6101d46004803603604081101561036957600080fd5b506001600160a01b038135811691602001351661112b565b6101ca6004803603602081101561039757600080fd5b50356001600160a01b0316611156565b604080518082019091526005815264574156455360d81b602082015290565b60006103d333848461121b565b50600192915050565b6000546001600160a01b03163314806103ff57506001546001600160a01b031633145b61043a5760405162461bcd60e51b81526004018080602001828103825260298152602001806118536029913960400191505060405180910390fd5b6001805460ff60a01b1916600160a01b17905560405133907fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e90600090a2565b600354600454600091908082018211156104c55760405162461bcd60e51b81526004018080602001828103825260228152602001806118c96022913960400191505060405180910390fd5b01905090565b60006104d8848484611350565b6001600160a01b03841660009081526008602090815260408083203384529091529020548083111561053b5760405162461bcd60e51b815260040180806020018281038252602881526020018061187c6028913960400191505060405180910390fd5b610548853385840361121b565b506001949350505050565b601290565b3360009081526008602090815260408083206001600160a01b03861684529091528120548281018111156105c7576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b6105d4338585840161121b565b5060019392505050565b600080546001600160a01b031633148061060257506001546001600160a01b031633145b61063d5760405162461bcd60e51b81526004018080602001828103825260298152602001806118536029913960400191505060405180910390fd5b600154600160a01b900460ff16156106865760405162461bcd60e51b81526004018080602001828103825260248152602001806119a06024913960400191505060405180910390fd5b600082116106d2576040805162461bcd60e51b81526020600482015260146024820152730616d6f756e742073686f756c64206265203e20360641b604482015290519081900360640190fd5b6001600160a01b03831661072d576040805162461bcd60e51b815260206004820152601b60248201527f6465706f73697420746f20746865207a65726f20616464726573730000000000604482015290519081900360640190fd5b600454828101811115610787576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f72206465706f736974000000604482015290519081900360640190fd5b8083016004556001600160a01b038416600090815260066020526040902054806107f2576107b485610bcc565b6001600160a01b03861660009081526005602090815260408083209390935560025460078252838320600019909101905560069052208490556108d7565b6001600160a01b0385166000908152600760205260409020546002546000190181141561089257818583011015610870576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f72206465706f736974000000604482015290519081900360640190fd5b6001600160a01b038616600090815260066020526040902082860190556108d5565b61089b86610bcc565b6001600160a01b03871660009081526005602090815260408083209390935560025460078252838320600019909101905560069052208590555b505b6040805185815290516001600160a01b038716916000916000805160206119128339815191529181900360200190a3506001949350505050565b600080546001600160a01b031633148061093557506001546001600160a01b031633145b6109705760405162461bcd60e51b81526004018080602001828103825260298152602001806118536029913960400191505060405180910390fd5b600154600160a01b900460ff16156109b95760405162461bcd60e51b81526004018080602001828103825260248152602001806119a06024913960400191505060405180910390fd5b6001600160a01b03821660009081526006602090815260408083205460079092529091205460025460001901811415610b13576001600160a01b038416600090815260056020526040902054600354811115610a465760405162461bcd60e51b81526004018080602001828103825260258152602001806118a46025913960400191505060405180910390fd5b600380548290039055600454831115610a905760405162461bcd60e51b81526004018080602001828103825260278152602001806118eb6027913960400191505060405180910390fd5b8260045403600481905550808382011015610adc5760405162461bcd60e51b815260040180806020018281038252603081526020018061175c6030913960400191505060405180910390fd5b60408051828501815290516000916001600160a01b038816916000805160206119128339815191529181900360200190a350610b9b565b6000610b1e85610bcc565b60035490915080821115610b635760405162461bcd60e51b81526004018080602001828103825260258152602001806118a46025913960400191505060405180910390fd5b8181036003556040805183815290516000916001600160a01b038916916000805160206119128339815191529181900360200190a350505b5050506001600160a01b0381166000908152600560209081526040808320839055600690915281205560015b919050565b6001600160a01b038116600090815260056020908152604080832054600690925282205481158015610bfc575080155b15610c0c57600092505050610bc7565b6001600160a01b03841660009081526007602052604090205460025460001901811415610c9357828284011015610c8a576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722062616c616e6365000000604482015290519081900360640190fd5b50019050610bc7565b81610ce95760028054600091906000198101908110610cae57fe5b9060005260206000200154905060028281548110610cc857fe5b906000526020600020015484820281610cdd57fe5b04945050505050610bc7565b600060028281548110610cf857fe5b600091825260209091200154600280546000198101908110610d1657fe5b9060005260206000200154850281610d2a57fe5b049050600060028360010181548110610d3f57fe5b600091825260209091200154600280546000198101908110610d5d57fe5b9060005260206000200154850281610d7157fe5b049050818282011015610dcb576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722062616c616e6365000000604482015290519081900360640190fd5b019350610bc792505050565b3360009081526008602090815260408083206001600160a01b038616845290915281205480831115610e3a5760405162461bcd60e51b815260040180806020018281038252602581526020018061197b6025913960400191505060405180910390fd5b6105d4338585840361121b565b600080546001600160a01b0316331480610e6b57506001546001600160a01b031633145b610ea65760405162461bcd60e51b81526004018080602001828103825260298152602001806118536029913960400191505060405180910390fd5b600154600160a01b900460ff1615610eef5760405162461bcd60e51b81526004018080602001828103825260248152602001806119a06024913960400191505060405180910390fd5b60008211610f3b576040805162461bcd60e51b815260206004820152601460248201527307265776172642073686f756c64206265203e20360641b604482015290519081900360640190fd5b60035460045481610f86576002805460018101825560009190915264e8d4a510007f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9091015561108b565b60028054600091906000198101908110610f9c57fe5b9060005260206000200154905060008364e8d4a51000870281610fbb57fe5b0490508064e8d4a510008201101561101a576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722070657263656e74000000604482015290519081900360640190fd5b64e8d4a51000818101906002908483028254600181018455600093845260209093209190049101558685018511156110835760405162461bcd60e51b815260040180806020018281038252602b815260200180611828602b913960400191505060405180910390fd5b505050908301905b8181830110156110cc5760405162461bcd60e51b81526004018080602001828103825260228152602001806118c96022913960400191505060405180910390fd5b8181016003556000600455600254604080519182526020820186905280517f45cad8c10023de80f4c0672ff6c283b671e11aa93c92b9380cdf060d2790da529281900390910190a15060019392505050565b60006103d3338484611350565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6000546001600160a01b031633148061117957506001546001600160a01b031633145b6111b45760405162461bcd60e51b81526004018080602001828103825260298152602001806118536029913960400191505060405180910390fd5b6001600160a01b0381166111f95760405162461bcd60e51b815260040180806020018281038252602681526020018061178c6026913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600154600160a01b900460ff16156112645760405162461bcd60e51b81526004018080602001828103825260248152602001806119a06024913960400191505060405180910390fd5b6001600160a01b0383166112a95760405162461bcd60e51b81526004018080602001828103825260248152602001806119576024913960400191505060405180910390fd5b6001600160a01b0382166112ee5760405162461bcd60e51b81526004018080602001828103825260228152602001806117b26022913960400191505060405180910390fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600154600160a01b900460ff16156113995760405162461bcd60e51b81526004018080602001828103825260248152602001806119a06024913960400191505060405180910390fd5b600081116113e5576040805162461bcd60e51b81526020600482015260146024820152730616d6f756e742073686f756c64206265203e20360641b604482015290519081900360640190fd5b6001600160a01b03831661142a5760405162461bcd60e51b81526004018080602001828103825260258152602001806119326025913960400191505060405180910390fd5b6001600160a01b03821661146f5760405162461bcd60e51b81526004018080602001828103825260238152602001806117396023913960400191505060405180910390fd5b6001600160a01b038316600090815260066020908152604080832054600790925282205490918215806114a85750600254600019018214155b1561153d5760006114b887610bcc565b9050808511156114f95760405162461bcd60e51b81526004018080602001828103825260268152602001806117d46026913960400191505060405180910390fd5b6001600160a01b03871660009081526005602090815260408083209388900390935560068152828220829055600254600790915291902060001990910190556115f1565b82841161156857506001600160a01b03851660009081526006602052604090208383039055826115f1565b6001600160a01b0386166000908152600560205260409020548385038110156115c25760405162461bcd60e51b81526004018080602001828103825260268152602001806117d46026913960400191505060405180910390fd5b6001600160a01b0387166000908152600560209081526040808320878903909403909355600690529081205550815b6001600160a01b038516600090815260066020908152604080832054600790925290912054909350915082158061162e5750600254600019018214155b156116c757600061163e86610bcc565b905080818387030110156116835760405162461bcd60e51b815260040180806020018281038252602e8152602001806117fa602e913960400191505060405180910390fd5b6001600160a01b03861660009081526005602090815260408083208589039490940190935560025460078252838320600019909101905560069052208190556116f7565b6001600160a01b038516600090815260056020908152604080832080548589030190556006909152902083820190555b846001600160a01b0316866001600160a01b0316600080516020611912833981519152866040518082815260200191505060405180910390a350505050505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573736164646974696f6e206f766572666c6f7720666f7220746f74616c2062616c616e6365202b206f6c644465706f7369744f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a206164646974696f6e206f766572666c6f7720666f7220726563697069656e742062616c616e63656164646974696f6e206f766572666c6f7720666f7220746f74616c20737570706c79202b207265776172644f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572206f722061646d696e45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63657375627472616374696f6e206f766572666c6f7720666f7220746f74616c20737570706c796164646974696f6e206f766572666c6f7720666f7220746f74616c20737570706c797375627472616374696f6e206f766572666c6f7720666f72206c6971756964206465706f736974ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f446570726563617465626c653a20636f6e74726163742069732064657072656361746564a264697066735822122015806b87b46c722b54f5f8f50de4114610e92b1d2f590ccf5f0071b72431c67864736f6c63430006080033

Verified Source Code Partial Match

Compiler: v0.6.8+commit.0bbfe453 EVM: istanbul Optimization: Yes (200 runs)
WAVES.sol 308 lines
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.6.8;

interface Staking {
  function deposit(address account, uint256 amount) external returns (bool);

  function withdraw(address account) external returns (bool);

  function stake(uint256 reward) external returns (bool);

  event Reward(uint256 id, uint256 amount);
}

interface ERC20 {

  function totalSupply() external view returns (uint256);

  function balanceOf(address account) external view returns (uint256);

  function allowance(address owner, address spender) external view returns (uint256);

  function approve(address spender, uint256 amount) external returns (bool);

  function increaseAllowance(address spender, uint256 addedValue) external returns (bool);

  function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool);

  function transfer(address recipient, uint256 amount) external returns (bool);

  function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

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

abstract contract Ownable {
  address private _owner;
  address private _admin;

  constructor () public {
    _owner = msg.sender;
    _admin = msg.sender;
  }

  modifier onlyOwner() {
    require(_owner == msg.sender || _admin == msg.sender, "Ownable: caller is not the owner or admin");
    _;
  }

  function transferOwnership(address newOwner) external virtual onlyOwner {
    require(newOwner != address(0), "Ownable: new owner is the zero address");
    _owner = newOwner;
  }
}

abstract contract Deprecateble is Ownable {
  bool internal deprecated;

  modifier onlyNotDeprecated() {
    require(!deprecated, "Deprecateble: contract is deprecated");
    _;
  }

  function deprecate() external onlyOwner {
    deprecated = true;
    emit Deprecate(msg.sender);
  }

  event Deprecate(address indexed account);
}

abstract contract StandartToken is Staking, ERC20, Ownable, Deprecateble {
  uint256[] private _percents;
  uint256 private _liquidTotalSupply;
  uint256 private _liquidDeposit;
  uint256 constant private PERCENT_FACTOR = 10 ** 12;

  mapping(address => uint256) private _balances;
  mapping(address => uint256) private _deposits;
  mapping(address => uint256) private _rewardIndexForAccount;
  mapping(address => mapping(address => uint256)) private _allowances;

  constructor () public {
    _percents.push(PERCENT_FACTOR);
  }

  function deposit(address account, uint256 amount) external onlyOwner onlyNotDeprecated override virtual returns (bool)  {
    require(amount > 0, "amount should be > 0");
    require(account != address(0), "deposit to the zero address");

    uint256 liquidDeposit = _liquidDeposit;
    require(liquidDeposit + amount >= liquidDeposit, "addition overflow for deposit");
    _liquidDeposit = liquidDeposit + amount;

    uint256 oldDeposit = _deposits[account];
    if (oldDeposit == 0) {
      _balances[account] = balanceOf(account);
      _rewardIndexForAccount[account] = _percents.length - 1;
      _deposits[account] = amount;
    } else {
      uint256 rewardIndex = _rewardIndexForAccount[account];
      if (rewardIndex == _percents.length - 1) {
        require(oldDeposit + amount >= oldDeposit, "addition overflow for deposit");
        _deposits[account] = oldDeposit + amount;
      } else {
        _balances[account] = balanceOf(account);
        _rewardIndexForAccount[account] = _percents.length - 1;
        _deposits[account] = amount;
      }
    }

    emit Transfer(address(0), account, amount);
    return true;
  }

  function stake(uint256 reward) external onlyOwner onlyNotDeprecated override virtual returns (bool) {
    require(reward > 0, "reward should be > 0");

    uint256 liquidTotalSupply = _liquidTotalSupply;
    uint256 liquidDeposit = _liquidDeposit;

    if (liquidTotalSupply == 0) {
      _percents.push(PERCENT_FACTOR);
    } else {
      uint256 oldPercent = _percents[_percents.length - 1];
      uint256 percent = reward * PERCENT_FACTOR / liquidTotalSupply;
      require(percent + PERCENT_FACTOR >= percent, "addition overflow for percent");
      uint256 newPercent = percent + PERCENT_FACTOR;
      _percents.push(newPercent * oldPercent / PERCENT_FACTOR);

      require(liquidTotalSupply + reward >= liquidTotalSupply, "addition overflow for total supply + reward");
      liquidTotalSupply = liquidTotalSupply + reward;
    }

    require(liquidTotalSupply + liquidDeposit >= liquidTotalSupply, "addition overflow for total supply");
    _liquidTotalSupply = liquidTotalSupply + liquidDeposit;
    _liquidDeposit = 0;

    emit Reward(_percents.length, reward);
    return true;
  }

  function withdraw(address account) external onlyOwner onlyNotDeprecated override virtual returns (bool) {
    uint256 oldDeposit = _deposits[account];
    uint256 rewardIndex = _rewardIndexForAccount[account];

    if (rewardIndex == _percents.length - 1) {
      uint256 balance = _balances[account];
      require(balance <= _liquidTotalSupply, "subtraction overflow for total supply");
      _liquidTotalSupply = _liquidTotalSupply - balance;

      require(oldDeposit <= _liquidDeposit, "subtraction overflow for liquid deposit");
      _liquidDeposit = _liquidDeposit - oldDeposit;

      require(balance + oldDeposit >= balance, "addition overflow for total balance + oldDeposit");
      emit Transfer(account, address(0), balance + oldDeposit);
    } else {
      uint256 balance = balanceOf(account);
      uint256 liquidTotalSupply = _liquidTotalSupply;
      require(balance <= liquidTotalSupply, "subtraction overflow for total supply");
      _liquidTotalSupply = liquidTotalSupply - balance;
      emit Transfer(account, address(0), balance);
    }

    _balances[account] = 0;
    _deposits[account] = 0;
    return true;
  }

  // ERC20
  function totalSupply() external view override virtual returns (uint256) {
    uint256 liquidTotalSupply = _liquidTotalSupply;
    uint256 liquidDeposit = _liquidDeposit;

    require(liquidTotalSupply + liquidDeposit >= liquidTotalSupply, "addition overflow for total supply");
    return liquidTotalSupply + liquidDeposit;
  }

  function balanceOf(address account) public view override virtual returns (uint256) {
    uint256 balance = _balances[account];
    uint256 oldDeposit = _deposits[account];

    if (balance == 0 && oldDeposit == 0) {
      return 0;
    }

    uint256 rewardIndex = _rewardIndexForAccount[account];
    if (rewardIndex == _percents.length - 1) {
      require(balance + oldDeposit >= balance, "addition overflow for balance");
      return balance + oldDeposit;
    }

    if (oldDeposit == 0) {
      uint256 profit = _percents[_percents.length - 1];
      return profit * balance / _percents[rewardIndex];
    } else {
      uint256 newBalance = balance * _percents[_percents.length - 1] / _percents[rewardIndex];
      uint256 profit = oldDeposit * _percents[_percents.length - 1] / _percents[rewardIndex + 1];
      require(profit + newBalance >= newBalance, "addition overflow for balance");
      return profit + newBalance;
    }
  }

  function allowance(address owner, address spender) external view override virtual returns (uint256) {
    return _allowances[owner][spender];
  }

  function _approve(address owner, address spender, uint256 amount) internal onlyNotDeprecated virtual {
    require(owner != address(0), "ERC20: approve from the zero address");
    require(spender != address(0), "ERC20: approve to the zero address");

    _allowances[owner][spender] = amount;
    emit Approval(owner, spender, amount);
  }

  function approve(address spender, uint256 amount) external override virtual returns (bool) {
    _approve(msg.sender, spender, amount);
    return true;
  }

  function increaseAllowance(address spender, uint256 addedValue) external override virtual returns (bool) {
    uint256 temp = _allowances[msg.sender][spender];
    require(temp + addedValue >= temp, "addition overflow");
    _approve(msg.sender, spender, temp + addedValue);
    return true;
  }

  function decreaseAllowance(address spender, uint256 subtractedValue) external override virtual returns (bool) {
    uint256 temp = _allowances[msg.sender][spender];
    require(subtractedValue <= temp, "ERC20: decreased allowance below zero");
    _approve(msg.sender, spender, temp - subtractedValue);
    return true;
  }

  function transfer(address recipient, uint256 amount) external override virtual returns (bool) {
    _transfer(msg.sender, recipient, amount);
    return true;
  }

  function transferFrom(address sender, address recipient, uint256 amount) external override virtual returns (bool) {
    _transfer(sender, recipient, amount);

    uint256 temp = _allowances[sender][msg.sender];
    require(amount <= temp, "ERC20: transfer amount exceeds allowance");
    _approve(sender, msg.sender, temp - amount);
    return true;
  }

  function _transfer(address sender, address recipient, uint256 amount) internal onlyNotDeprecated virtual {
    require(amount > 0, "amount should be > 0");
    require(sender != address(0), "ERC20: transfer from the zero address");
    require(recipient != address(0), "ERC20: transfer to the zero address");

    uint256 oldDeposit = _deposits[sender];
    uint256 rewardIndex = _rewardIndexForAccount[sender];
    uint256 depositDiff = 0;

    if (oldDeposit == 0 || rewardIndex != _percents.length - 1) {
      uint256 senderBalance = balanceOf(sender);
      require(amount <= senderBalance, "ERC20: transfer amount exceeds balance");
      _balances[sender] = senderBalance - amount;

      _deposits[sender] = 0;
      _rewardIndexForAccount[sender] = _percents.length - 1;
    } else {
      if (amount <= oldDeposit) {
        _deposits[sender] = oldDeposit - amount;
        depositDiff = amount;
      } else {
        uint256 senderBalance = _balances[sender];
        require(amount - oldDeposit <= senderBalance, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - (amount - oldDeposit);
        _deposits[sender] = 0;
        depositDiff = oldDeposit;
      }
    }

    oldDeposit = _deposits[recipient];
    rewardIndex = _rewardIndexForAccount[recipient];
    if (oldDeposit == 0 || rewardIndex != _percents.length - 1) {
      uint256 recipientBalance = balanceOf(recipient);
      require((amount - depositDiff) + recipientBalance >= recipientBalance, "ERC20: addition overflow for recipient balance");
      _balances[recipient] = recipientBalance + (amount - depositDiff);
      _rewardIndexForAccount[recipient] = _percents.length - 1;
      _deposits[recipient] = depositDiff;
    } else {
      uint256 recipientBalance = _balances[recipient];
      _balances[recipient] = recipientBalance + (amount - depositDiff);
      _deposits[recipient] = oldDeposit + depositDiff;
    }

    emit Transfer(sender, recipient, amount);
  }
}

contract WAVES is StandartToken {
  function name() external pure returns (string memory) {
    return "WAVES";
  }

  function symbol() external pure returns (string memory) {
    return "WAVES";
  }

  function decimals() external pure returns (uint8) {
    return 18;
  }
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 10 functions

These functions modify contract state and require a wallet transaction to execute.

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
deposit 0x47e7ef24
address account
uint256 amount
returns: bool
deprecate 0x0fcc0c28
No parameters
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
stake 0xa694fc3a
uint256 reward
returns: bool
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
withdraw 0x51cff8d9
address account
returns: bool

Recent Transactions

No transactions found for this address