Consensys / Tokens

Ethereum Token Contracts
MIT License
2.06k stars 1.2k forks source link

1.0.0: EIP-610 compatability #94

Closed skmgoldin closed 6 years ago

skmgoldin commented 6 years ago

This PR removes the approveAndCall function from HumanStandardToken.sol and bumps the EPM version to 1.0.0.

This should be rebased and merged only after https://github.com/ConsenSys/Tokens/pull/93.

skmgoldin commented 6 years ago

Controversial idea: merge HumanStandardToken.sol into StandardToken.sol and rename StandardToken.sol to ERC20Token.sol.

I think this would be good, but not a huge deal to me if it's too controversial.

maurelian commented 6 years ago

I'm not clear about the reasoning for the name change. It could also be argued that EIP20 or even EIP610 is preferred.

I don't feel qualified to comment on the wisdom of making the optional methods non-optional.

skmgoldin commented 6 years ago

Well with approveAndCall removed we have no optional methods, unless you consider the constructor an optional method. And the StandardToken, because it doesn't implement the name, decimals, symbol getters, is technically not ERC20/EIP610.

I'd be happy calling it EIP610Token.sol also.

skmgoldin commented 6 years ago

Look at this for example: https://github.com/ConsenSys/Tokens/issues/96

I've also thought about proposing to merge this in: https://github.com/skmgoldin/EIP621Token

All of these other tokens are supersets of ERC20/EIP621, and would consume the thing that is currently called HumanStandardToken.sol. But what if we went down that route and someone didn't want an EIP621 token, they wanted an EIP610 token? We'd have a more uniform naming convention if HumanStandardToken was merged into StandardToken and renamed EIP610Token.sol I think.

maurelian commented 6 years ago

I agree that this repo should cleanly support multiple supersets. Regarding:

And the StandardToken, because it doesn't implement the name, decimals, symbol getters, is technically not ERC20/EIP610.

My point above was that for Name, Decimals, and Symbol the standard says: OPTIONAL - This method can be used to improve usability, but interfaces and other contracts MUST NOT expect these values to be present.

skmgoldin commented 6 years ago

O shit! Well look at me going around saying wrong things.