package io.emax.cosigner.bitcoin;
import io.emax.cosigner.api.core.CurrencyPackageInterface;
import io.emax.cosigner.api.currency.CurrencyConfiguration;
import io.emax.cosigner.api.currency.Monitor;
import io.emax.cosigner.api.currency.Wallet;
public class BitcoinCurrencyPackage implements CurrencyPackageInterface {
private BitcoinConfiguration bitcoinConfiguration = new BitcoinConfiguration();
private BitcoinWallet bitcoinWallet = null;
private BitcoinMonitor bitcoinMonitor = null;
@Override
public CurrencyConfiguration getConfiguration() {
return bitcoinConfiguration;
}
@Override
public void setConfiguration(CurrencyConfiguration configuration) {
if (configuration.getClass().isInstance(BitcoinConfiguration.class)) {
bitcoinConfiguration = (BitcoinConfiguration) configuration;
}
}
@Override
public Wallet getWallet() {
if(bitcoinWallet == null) {
bitcoinWallet = new BitcoinWallet(bitcoinConfiguration);
}
return bitcoinWallet;
}
@Override
public void setWallet(Wallet wallet) {
if (wallet.getClass().isInstance(BitcoinWallet.class)) {
bitcoinWallet = (BitcoinWallet) wallet;
}
}
@Override
public Monitor getMonitor() {
if(bitcoinMonitor == null) {
bitcoinMonitor = new BitcoinMonitor((BitcoinWallet) getWallet());
}
return bitcoinMonitor;
}
@Override
public void setMonitor(Monitor monitor) {
if (monitor.getClass().isInstance(BitcoinMonitor.class)) {
bitcoinMonitor = (BitcoinMonitor) monitor;
}
}
}