Compare commits
	
		
			4 Commits
		
	
	
		
			master
			...
			bvander/ac
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					c83cc5240e | ||
| 5061dc0d32 | |||
| 6f26793359 | |||
| e5fe424185 | 
@ -35,7 +35,7 @@ http {
 | 
			
		||||
      location / {
 | 
			
		||||
          root /usr/share/nginx/html;
 | 
			
		||||
          index index.html index.htm;
 | 
			
		||||
          try_files $uri $uri/ /index.html =404;
 | 
			
		||||
          try_files $uri $uri/ /index.html;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -18,6 +18,10 @@ export class RegistryService {
 | 
			
		||||
    this.registry.load();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async load(): Promise<any> {
 | 
			
		||||
      this.registry.load();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  getRegistry(): any {
 | 
			
		||||
    return this.registry;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import {Injectable} from '@angular/core';
 | 
			
		||||
import {BehaviorSubject, Observable, Subject} from 'rxjs';
 | 
			
		||||
import {BehaviorSubject, Observable, Subject, throwError, of} from 'rxjs';
 | 
			
		||||
import {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';
 | 
			
		||||
import {environment} from '@src/environments/environment';
 | 
			
		||||
import {first} from 'rxjs/operators';
 | 
			
		||||
@ -38,16 +38,34 @@ export class UserService {
 | 
			
		||||
    private loggingService: LoggingService,
 | 
			
		||||
    private tokenService: TokenService,
 | 
			
		||||
    private registryService: RegistryService,
 | 
			
		||||
    private authService: AuthService,
 | 
			
		||||
    private authService: AuthService
 | 
			
		||||
  ) {
 | 
			
		||||
    this.authService.init().then(() => {
 | 
			
		||||
      this.keystore = authService.mutableKeyStore;
 | 
			
		||||
      this.signer = new PGPSigner(this.keystore);
 | 
			
		||||
    });
 | 
			
		||||
    this.registry = registryService.getRegistry();
 | 
			
		||||
    this.registry.load();
 | 
			
		||||
    //this.authService.init().then(() => {
 | 
			
		||||
    //  this.keystore = authService.mutableKeyStore;
 | 
			
		||||
    //  this.signer = new PGPSigner(this.keystore);
 | 
			
		||||
    //});
 | 
			
		||||
    //this.registry = registryService.getRegistry();
 | 
			
		||||
    //this.registry.load();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async load(): Promise<any> {
 | 
			
		||||
    try {
 | 
			
		||||
        // TODO this method is called by ngOnInit so we need to 
 | 
			
		||||
        // emit an observalbe or conver ngonInit to promise
 | 
			
		||||
        // TODO alig the load/init methods naming
 | 
			
		||||
        await this.authService.init();
 | 
			
		||||
        // await this.registryService.load();
 | 
			
		||||
        // TODO key store is defined  
 | 
			
		||||
        this.keystore = this.authService.mutableKeyStore;
 | 
			
		||||
        this.signer = new PGPSigner(this.keystore);
 | 
			
		||||
        this.registry = this.registryService.getRegistry();
 | 
			
		||||
        return of(0);
 | 
			
		||||
    } catch (error) {
 | 
			
		||||
        console.log('ERROR: Failed to initiialize User Service', error)
 | 
			
		||||
        return throwError(error); 
 | 
			
		||||
    }
 | 
			
		||||
  } 
 | 
			
		||||
 | 
			
		||||
  resetPin(phone: string): Observable<any> {
 | 
			
		||||
    const params: HttpParams = new HttpParams().set('phoneNumber', phone);
 | 
			
		||||
    return this.httpClient.get(`${environment.cicUssdUrl}/pin`, {params});
 | 
			
		||||
@ -148,10 +166,17 @@ export class UserService {
 | 
			
		||||
 | 
			
		||||
  async loadAccounts(limit: number = 100, offset: number = 0): Promise<void> {
 | 
			
		||||
    this.resetAccountsList();
 | 
			
		||||
    const accountIndexAddress: string = await this.registry.getContractAddressByName('AccountRegistry');
 | 
			
		||||
    const accountIndexQuery = new AccountIndex(accountIndexAddress);
 | 
			
		||||
    const accountAddresses: Array<string> = await accountIndexQuery.last(await accountIndexQuery.totalAccounts());
 | 
			
		||||
    this.loggingService.sendInfoLevelMessage(accountAddresses);
 | 
			
		||||
    let accountAddresses: Array<string>;
 | 
			
		||||
    try {
 | 
			
		||||
        const accountIndexAddress: string = await this.registry.getContractAddressByName('AccountRegistry');
 | 
			
		||||
        const accountIndexQuery = new AccountIndex(accountIndexAddress);
 | 
			
		||||
        const totalAccounts = await accountIndexQuery.totalAccounts()
 | 
			
		||||
        const accountAddresses = await accountIndexQuery.last(totalAccounts);
 | 
			
		||||
        this.loggingService.sendInfoLevelMessage(accountAddresses);
 | 
			
		||||
    } catch (error){
 | 
			
		||||
        // TODO real logging:
 | 
			
		||||
        console.log("ERROR: failed to load accounts \n", error)
 | 
			
		||||
    }
 | 
			
		||||
    for (const accountAddress of accountAddresses.slice(offset, offset + limit)) {
 | 
			
		||||
      await this.getAccountByAddress(accountAddress, limit);
 | 
			
		||||
    }
 | 
			
		||||
@ -216,3 +241,5 @@ export class UserService {
 | 
			
		||||
    return this.httpClient.get(`${environment.cicMetaUrl}/genders`);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -9,6 +9,8 @@ import {strip0x} from '@src/assets/js/ethtx/dist/hex';
 | 
			
		||||
import {first} from 'rxjs/operators';
 | 
			
		||||
import {environment} from '@src/environments/environment';
 | 
			
		||||
import {AccountDetails} from '@app/_models';
 | 
			
		||||
import {Observable, of} from 'rxjs';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'app-accounts',
 | 
			
		||||
@ -30,22 +32,16 @@ export class AccountsComponent implements OnInit {
 | 
			
		||||
 | 
			
		||||
  constructor(
 | 
			
		||||
    private userService: UserService,
 | 
			
		||||
    private loggingService: LoggingService,
 | 
			
		||||
    private router: Router
 | 
			
		||||
    private router: Router,
 | 
			
		||||
    private loggingService: LoggingService
 | 
			
		||||
  )
 | 
			
		||||
  {
 | 
			
		||||
    (async () => {
 | 
			
		||||
      try {
 | 
			
		||||
          // TODO it feels like this should be in the onInit handler
 | 
			
		||||
        await this.userService.loadAccounts(100);
 | 
			
		||||
      } catch (error) {
 | 
			
		||||
        this.loggingService.sendErrorLevelMessage('Failed to load accounts', this, {error});
 | 
			
		||||
      }
 | 
			
		||||
    })();
 | 
			
		||||
    this.userService.getAccountTypes().pipe(first()).subscribe(res => this.accountTypes = res);
 | 
			
		||||
    this.userService = userService;  
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ngOnInit(): void {
 | 
			
		||||
    of(this.userService.load())
 | 
			
		||||
    this.userService.getAccountTypes().pipe(first()).subscribe(res => this.accountTypes = res);
 | 
			
		||||
    this.userService.accountsSubject.subscribe(accounts => {
 | 
			
		||||
      this.dataSource = new MatTableDataSource<any>(accounts);
 | 
			
		||||
      this.dataSource.paginator = this.paginator;
 | 
			
		||||
 | 
			
		||||
@ -7,10 +7,10 @@ export const environment = {
 | 
			
		||||
  serverLogLevel: NgxLoggerLevel.OFF,
 | 
			
		||||
  loggingUrl: 'http://localhost:8000',
 | 
			
		||||
  cicMetaUrl: 'https://meta.dev.grassrootseconomics.net',
 | 
			
		||||
  publicKeysUrl: 'http://localhost:8000/keys.asc',
 | 
			
		||||
  publicKeysUrl: 'https://dev.grassrootseconomics.net/.well-known/publickeys/',
 | 
			
		||||
  cicCacheUrl: 'https://cache.dev.grassrootseconomics.net',
 | 
			
		||||
  web3Provider: 'ws://localhost:63546',
 | 
			
		||||
  web3Provider: 'wss://bloxberg-ws.dev.grassrootseconomics.net',
 | 
			
		||||
  cicUssdUrl: 'https://ussd.dev.grassrootseconomics.net',
 | 
			
		||||
  registryAddress: '0x6Ca3cB14aA6F761712E1C18646AfBA4d5Ae249E8',
 | 
			
		||||
  registryAddress: '0xea6225212005e86a4490018ded4bf37f3e772161',
 | 
			
		||||
  trustedDeclaratorAddress: '0xEb3907eCad74a0013c259D5874AE7f22DcBcC95C'
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user