This repository contains Bitcoin ATM related code used in BATMTwo, BATMThree, BATM Server (CAS) products.
More information about the products can be found here: https://www.generalbytes.com
All source code is released under GPL2.Architecture Overview
Operators frequently request new features to be added to our BATM Server (CAS). Typically, the requests are for adding support for "crypto currency XYZ" or "digital asset exchange XY".
The purpose of this project is to give operators the desired power to add features themselves by extending CAS via this published Extensions mechanism.
Our software is written in Java and any Java developer may be recruited to create/implement these extensions. No unusual qualifications are required.
When the CAS services are started, they scan the /batm/app/master/extensions/ folder for all files that have the ".jar" extension. CAS then parses any "batm-extensions.xml" found in the JAR file to enumerate the extensions present within the JAR package.
Extension is a high level component - something like a plugin - that encapsulates and instantiates the rest of the features.
Extension can be asked to provide wallet X for currency Y etc. The best way to learn more about extensions is to read the sample code and examine how other people have implemented support for their wallet or cryptocurrency in the server_extensions_extra module. Additional examples can be found here.
Here is the list of some functionality that can be extended using Extensions API:Implement support for different cryptocurrency wallets - for more information, see the IWallet interface. Implement support for different cryptocurrency exchanges - for more information, see the IExchange interface. Implement support for different cryptocurrency rate tickers - for more information, see the IRateSource interface. Implement support for different cryptocurrenc...