1

I have a BuyToken event when user send ether to smart contract they will receive tokens based on ether amount. For ex: 1 ETH = 1000 Token.

/// This notifies clients about the Buy Token
event BuyToken(address user, uint256 eth, uint256 token);

There is my buy() function

 /**
*  function for Buy Token
*/

function buy() payable public returns (uint amount){
      require(msg.value > 0);

      amount = ((msg.value.mul(TokenPerETHBuy)).mul( 10 ** uint256(decimals))).div(1 ether);
      balanceOf[this] -= amount;                        // adds the amount to owner's 
      balanceOf[msg.sender] += amount; 
      emit BuyToken(msg.sender,msg.value,amount);
      return amount;
}

It works well when user send ether user will receive tokens.

But this transaction event is not visible on Etherscan.io

For ex: Ropsten link

I send 0.2 ether I receive 200 tokens. I can see ether transaction. But received tokens transaction not visible on "ERrc20 Token Txns" tab.

Pelase can you help ??

1

You have to emit the Transfer event for Etherscan to see it as a token transfer . Most people handle this by logging 0x0 as the from address.

  • Should I change BuyToken -> Transfer event ? – Nizomjon Hajiev Dec 12 '18 at 2:08
  • You can emit both if you want, and you have to if you want to query for BuyToken events later. – flygoing Dec 12 '18 at 2:12
  • emit BuyToken(msg.sender,msg.value,amount); emit Transfer(msg.sender,this ,amount); – Nizomjon Hajiev Dec 12 '18 at 2:14

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.