0

I have write a small smart contract. however there is problem. please see below full code

pragma solidity ^0.5.16;

import "./x.sol";

contract xSale { address admin; x public tokenContract; uint256 public tokenPrice; uint256 public tokensSold;

event Sell(address _buyer, uint256 _amount);

constructor (x _tokenContract, uint256 _tokenPrice) public { admin = msg.sender; tokenContract = _tokenContract; tokenPrice = _tokenPrice; }

function multiply(uint x, uint y) internal pure returns (uint z) { require(y == 0 || (z = x * y) / y == x); }

function buyTokens(uint256 _numberOfTokens) public payable { require(msg.value == multiply(_numberOfTokens, tokenPrice)); require(tokenContract.balanceOf(address(this)) >= _numberOfTokens); require(tokenContract.transfer(msg.sender, _numberOfTokens));

tokensSold += _numberOfTokens;

emit Sell(msg.sender, _numberOfTokens);

}

function endSale() public { require(msg.sender == admin); require(tokenContract.transfer(admin, tokenContract.balanceOf(address(this))));

// UPDATE: Let's not destroy the contract here
// Just transfer the balance to the admin

admin.transfer(address payable(this).balance);
}

}

getting error xSale.sol:40:32: ParserError: Expected ',' but got 'payable' admin.transfer(address payable(this).balance); ^-----^

clement
  • 4,302
  • 2
  • 17
  • 35
  • ParserError means the compiler wasn't able to parse the code, i.e., something wrong with the syntax. – hrkrshnn Jul 20 '20 at 07:04

1 Answers1

0

Change admin.transfer(address payable(this).balance);

to : admin.transfer(address(this).balance); .

clement
  • 4,302
  • 2
  • 17
  • 35