copay-crown
Version:
A Secure Crown Wallet
49 lines (41 loc) • 1.39 kB
text/typescript
import { Injectable } from '@angular/core';
import { Logger } from '../../providers/logger/logger';
// providers
import { PersistenceProvider } from '../persistence/persistence';
()
export class TxConfirmNotificationProvider {
constructor(
private logger: Logger,
private persistenceProvider: PersistenceProvider
) {
this.logger.info('TxConfirmNotificationProvider initialized.');
}
public checkIfEnabled(txid: string): Promise<any> {
return new Promise((resolve, reject) => {
this.persistenceProvider.getTxConfirmNotification(txid).then((res: any) => {
return resolve(!!res);
}).catch((err: any) => {
this.logger.error(err);
return reject(err);
});
});
};
public subscribe(client: any, opts: any): void {
client.txConfirmationSubscribe(opts, (err: any, res: any) => {
if (err) this.logger.error(err);
this.persistenceProvider.setTxConfirmNotification(opts.txid, true).catch((err: any) => {
this.logger.error(err);
return;
});
});
};
public unsubscribe(client: any, txId: string): void {
client.txConfirmationUnsubscribe(txId, (err: any, res: any) => {
if (err) this.logger.error(err);
this.persistenceProvider.removeTxConfirmNotification(txId).catch((err: any) => {
this.logger.error(err);
return;
});
});
};
}