The main goal of this refactor is to define a proper separation between the frontend and the backend of the application. Although Copay is a 100% client side application, a clean separation of the core functionalities is needed to later offer different endpoints, eg. web interface, npm command line interface or just a library that runs both on server and browser.
Three layers are proposed for the application:
- UI Interface: AngularJS | CLI
- Wallet Models and Services
- Backing Services: P2P Networking | Blockchain | Storage