matryx / MatryxToken

Collection of smart contracts for the ERC20 Matryx Token
http://matryx.ai
10 stars 15 forks source link

Do not have default payable function on a token sale #1

Open miohtama opened 7 years ago

miohtama commented 7 years ago

I advise against having a default payable function on token sales.

Rationale: People can send in ETH from exchanges (Coinbase, etc.). Those exchanges cannot handle incoming ERC-20 token transfers. Coinbase customer support won't recover your tokens.

This is general industry knowledge. Selling something, taking money and not able to deliver is something that gets you in trouble with angry customers and regulators. I highly advise forcing a data field value (function name), even a fixed one, so that we can be sure the deposit comes from a proper Ethereum wallet and not a shared wallet. Taking steps towards preventing bad transactions is a part of running responsible token sale.

Forcing a high gas limit value and data field filled in limits this problem. This makes it more cumbersome for people to send in ETH, true. But it is much more safer investor wise, as I have not yet encountered problems with exchanges when enforcing data field and gas limit > 200k

More discussion can be found here:

https://github.com/TokenMarketNet/ico/issues/53

rstormsf commented 7 years ago

What I also liked is what Kyber did https://github.com/KyberNetwork/TokenDistributionContracts/blob/6b04dbf730ffc55c3d2850969dbbfb89e69dfcfc/TokenSale/contracts/KyberNetworkTokenSale.sol#L62

enforce gasPrice to be less than some amount in order to stop whales to get ahead of the game