diff --git a/src/app/app.component.html b/src/app/app.component.html
index 0680b43..f17c3b3 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -1 +1 @@
-
+
diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts
index e0e7941..187f6e4 100644
--- a/src/app/app.component.spec.ts
+++ b/src/app/app.component.spec.ts
@@ -1,6 +1,8 @@
import { TestBed } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { AppComponent } from './app.component';
+import {TransactionService} from './_services';
+import {FooterStubComponent, SidebarStubComponent, TopbarStubComponent, TransactionServiceStub} from '../testing';
describe('AppComponent', () => {
beforeEach(async () => {
@@ -9,8 +11,14 @@ describe('AppComponent', () => {
RouterTestingModule
],
declarations: [
- AppComponent
+ AppComponent,
+ FooterStubComponent,
+ SidebarStubComponent,
+ TopbarStubComponent
],
+ providers: [
+ { provide: TransactionService, useClass: TransactionServiceStub }
+ ]
}).compileComponents();
});
@@ -25,11 +33,4 @@ describe('AppComponent', () => {
const app = fixture.componentInstance;
expect(app.title).toEqual('cic-staff-client');
});
-
- it('should render title', () => {
- const fixture = TestBed.createComponent(AppComponent);
- fixture.detectChanges();
- const compiled = fixture.nativeElement;
- expect(compiled.querySelector('.content span').textContent).toContain('cic-staff-client app is running!');
- });
});
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 2217e77..29bae05 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -1,10 +1,5 @@
import {Component, HostListener, OnInit} from '@angular/core';
-import {TransactionService} from './_services/transaction.service';
-import {fetcher} from './../assets/js/plugin';
-import {Registry, TransactionHelper} from './../assets/js/bancor/registry';
-import Web3 from 'web3';
-import { Settings } from './_models';
-
+import {BlockSyncService, TransactionService} from './_services';
@Component({
selector: 'app-root',
@@ -16,90 +11,43 @@ export class AppComponent implements OnInit {
registryAddress: string = '0xb708175e3f6Cd850643aAF7B32212AFad50e2549';
readyStateTarget: number = 3;
readyState: number = 0;
+ mediaQuery = window.matchMedia('(max-width: 768px)');
- constructor(private transactionService: TransactionService) {}
+ constructor(
+ private transactionService: TransactionService,
+ private blockSyncService: BlockSyncService
+ ) {
+ this.blockSyncService.blockSync();
+ }
ngOnInit(): void {
- const settings = new Settings(this.scan);
- const provider = 'ws://localhost:8545';
- const readyStateElements = {
- token: 1,
- network: 2,
- };
- settings.w3.provider = provider;
- settings.w3.engine = new Web3(provider);
- settings.registry = new Registry(settings.w3.engine, this.registryAddress);
- settings.txHelper = new TransactionHelper(settings.w3.engine, settings.registry);
-
- settings.txHelper.ontransfer = async (transaction: any): Promise => {
- window.dispatchEvent(this.newTransferEvent(transaction));
- };
- settings.txHelper.onconversion = async (transaction: any): Promise => {
- window.dispatchEvent(this.newConversionEvent(transaction));
- };
- settings.registry.ontokenload = (tokenCount: number): void => {
- console.debug('loaded tokens', tokenCount);
- this.readyStateProcessor(settings, readyStateElements.token);
- };
- settings.registry.onregistryload = (tokenCount: number): void => {
- console.debug('loaded network contracts', tokenCount);
- this.readyStateProcessor(settings, readyStateElements.network);
- };
-
- settings.registry.load();
+ this.mediaQuery.addListener(this.onResize);
+ this.onResize(this.mediaQuery);
}
- readyStateProcessor(settings, bit): void {
- this.readyState |= bit;
- if (this.readyStateTarget === this.readyState && this.readyStateTarget) {
- console.log('reached readyState target', this.readyStateTarget);
- fetcher(settings);
+ // Load resize
+ onResize(e): void {
+ const sidebar = document.getElementById('sidebar');
+ const content = document.getElementById('content');
+ const sidebarCollapse = document.getElementById('sidebarCollapse');
+ sidebarCollapse.classList.remove('active');
+ if (e.matches) {
+ sidebar.classList.add('active');
+ content.classList.add('active');
+ } else {
+ sidebar.classList.remove('active');
+ content.classList.remove('active');
}
}
- newTransferEvent(tx): any {
- return new CustomEvent('cic_transfer', {
- detail: {
- tx,
- },
- });
- }
-
- newConversionEvent(tx): any {
- return new CustomEvent('cic_convert', {
- detail: {
- tx,
- },
- });
- }
-
- async scan(settings, lo, hi, bloomBlockBytes, bloomBlocktxBytes, bloomRounds): Promise {
- const w = new Worker('./../assets/js/worker.js');
- w.onmessage = (m) => {
- settings.txHelper.processReceipt(m.data);
- };
- w.postMessage({
- w3_provider: settings.w3.provider,
- lo,
- hi,
- filters: [
- bloomBlockBytes,
- bloomBlocktxBytes,
- ],
- filter_rounds: bloomRounds,
- });
- }
-
@HostListener('window:cic_transfer', ['$event'])
cicTransfer(event: CustomEvent): void {
- console.log('have tx ', event.detail.tx);
const transaction = event.detail.tx;
- this.transactionService.setTransaction(transaction);
+ this.transactionService.setTransaction(transaction, 100);
}
@HostListener('window:cic_convert', ['$event'])
cicConvert(event: CustomEvent): void {
- console.log('have convert ', event.detail.tx);
const conversion = event.detail.tx;
this.transactionService.setConversion(conversion);
}
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 51a6c77..951435d 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -6,6 +6,8 @@ import { AppComponent } from './app.component';
import {DataTablesModule} from 'angular-datatables';
import {SharedModule} from './shared/shared.module';
import {HttpClientModule} from '@angular/common/http';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
+import {MatTableModule} from '@angular/material/table';
@NgModule({
declarations: [
@@ -16,7 +18,9 @@ import {HttpClientModule} from '@angular/common/http';
AppRoutingModule,
HttpClientModule,
DataTablesModule,
- SharedModule
+ SharedModule,
+ BrowserAnimationsModule,
+ MatTableModule
],
providers: [],
bootstrap: [AppComponent]