---
# System prepended metadata

title: Atomex Swaps Contract Notes

---

# Atomex Swaps Contract Notes
> 13 April 2020

# Potential Attack Vectors
* can we manipulate the timestamp gaps between contracts?
* is there any other contracts being called before operations are occurring?
* is reentrancy an issue? Are the contracts calling any untrusted contracts or transfer of funds to any untrusted accounts?

# Code Style
* they use the open zeppelin safe math contracts, which is good practice, good to see that in their contracts
* They use a declarative programming style which works well in smart 
contract programming. The language itself encourages this style, but it’s not often done this well with modifiers and requires.
	* checks - effects - interactions model is followed in both contracts
	* https://owasp.org/www-chapter-london/assets/slides/OWASPLondon-Smart-ContractSecurity-edeirme_-20180830-PDF.pdf 
	* [Reentrancy After Istanbul - Security - OpenZeppelin Community](https://forum.openzeppelin.com/t/reentrancy-after-istanbul/1742) 
	* [Security Considerations — Solidity 0.5.11 documentation](https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern)
	* [Known Attacks - Ethereum Smart Contract Best Practices](https://consensys.github.io/smart-contract-best-practices/known_attacks/#reentrancy)
* Good use of Reentrancy Guard
* Generally clean and well organized code

