clearmatics / mobius

Trustless Tumbling for Transaction Privacy
GNU Lesser General Public License v3.0
85 stars 23 forks source link

Withdraw checks possible enhancement #46

Open magooster opened 6 years ago

magooster commented 6 years ago

Within the Mixer contracts Withdraw function the signature is checked for validity, including checking for the existence of the tag, then the 'tag' is added to ensure the same signer doesn't attempt to withdraw again.

Would this not be more readable if this were split into two checks, one where we require the signature tag not to already exist and the second to validate the signature.

require (AddTag) require (SignatureValid)

The AddTag function would check for the existence of the tag, and return false if tag already exists or add and return true if it doesn't. This would also be consistent with the AddParticipant logic in the Deposit function.

HarryR commented 6 years ago

Yup, makes sense.

Higher priority is ERC-223 support and making Wallet software more usable / easy to integrate.

Can the Mixer be more easily abstracted multiple frontends which supports ERC-20, ERC-223 and Ether without duplicating code?