create Swap factory contract
currently the swap contract needs to be deployed for each swap done. this could be changed to be a "Swap factory" contract that is already deployed on ethereum, that users can call to start a new swap, without needing to deploy the whole contract.